日期:2014-05-16  浏览次数:20672 次

求助:LINUX内核代码中# 与define之间有空格是怎么回事?
# define mutex_lock_nested(lock, subclass) mutex_lock(lock)
# define mutex_lock_interruptible_nested(lock, subclass) mutex_lock_interruptible(lock)
# define mutex_lock_killable_nested(lock, subclass) mutex_lock_killable(lock)
如在Mutex.h中,有如上几个定义,但是#和define之间有空格,正常应该没有才对呀,请各位高手指点一下 谢谢啦!

------解决方案--------------------
楼主要是不放心的话用gcc写个程序,看看#和define之间有空格是否能编译通过吧
------解决方案--------------------
可以那么写,就和a=b; a = b;一样
------解决方案--------------------
#define PI 3.14159和
# define PI 3.14159是一样的

------解决方案--------------------
我觉得有时是为了直观、整齐。
当有多个这些宏的时候,并且有多层嵌套,适当的缩进会让人更容易理解它们的层次。
以前搞u-boot时经常看到这种形式,但担心出错,特意用编译器测试才放心。
------解决方案--------------------
代码风格问题,就有人喜欢这么写,呵呵