本文主要是介绍C:宏:编程风格:井号与define之间的空格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在这一篇中有提到,井号与define之间空格,可能导致搜索上的一些问题。
https://mzhan017.blog.csdn.net/article/details/135289451
今天看到有专门做这个空格的修改:
https://sourceware.org/git/?p=glibc.git;a=commitdiff;h=fcf70d4114db9ff7923f5dfeb3fea6e2d623e5c2;hp=3f3822198993be18d4d9ccb1593eea274dbd2ba0
应该是为了阅读代码的方便性,因为如果不加空格会对代码阅读造成一定的困难;但是为什么不直接将整个#define都缩进呢?例如下面的一段
glibc/elf/dl-load.h
/* The right way to map in the shared library files is MAP_COPY, whichmakes a virtual copy of the data at the time of the mmap call; thisguarantees the mapped pages will be consistent even if the file isoverwritten. Some losing VM systems like Linux's lack MAP_COPY. All weget is MAP_PRIVATE, which copies each page when it is modified; thismeans if the file is overwritten, we may at some point get some pagesfrom the new version after starting with pages from the old version.To make up for the lack and avoid the overwriting problem,what Linux does have is MAP_DENYWRITE. This prevents anyonefrom modifying the file while we have it mapped. */
#ifndef MAP_COPY
# ifdef MAP_DENYWRITE
# define MAP_COPY (MAP_PRIVATE | MAP_DENYWRITE)
# else
# define MAP_COPY MAP_PRIVATE
# endif
#endif
应个人的阅读爱好,其实只要养成一种阅读习惯,就可以,不管是前加空格还是后加空格,只要可用表示出if缩进块的功能就好。
这篇关于C:宏:编程风格:井号与define之间的空格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!