Ste*_*phQ 28 macros c-preprocessor
有什么理由比较喜欢
#define MY_MACRO() ..stuff..
Run Code Online (Sandbox Code Playgroud)
至
#define MY_MACRO ..stuff..
Run Code Online (Sandbox Code Playgroud)
不要使用宏不是一个有效的答案......
Jam*_*lis 19
如果宏名称后跟左括号,则仅替换类似函数的宏.所以,以下都调用类似函数的宏MY_MACRO()
:
MY_MACRO()
MY_MACRO ( )
MY_MACRO
( )
Run Code Online (Sandbox Code Playgroud)
但这不会:
MY_MACRO SomethingElse
Run Code Online (Sandbox Code Playgroud)
这取决于您使用宏的方式以及它的用途是否重要.理想情况下,您的宏将具有不同的名称; 如果你保留宏的全大写标识符,那么你是否使用类似对象或类似函数的宏参数为零并不重要.
在美学上,通常(但不总是)更清洁,不使具有零参数的类似功能的宏.
我喜欢用MY_MACRO()
,用括号,因为它给人的感觉更像我打电话的功能.否则看起来我正在调用一个常数:
MY_MACRO();
Run Code Online (Sandbox Code Playgroud)
VS
MY_MACRO;
Run Code Online (Sandbox Code Playgroud)
也就是说,如果定义用于调用代码,而不仅仅是一个简单的常量值.