为什么这段代码不起作用? (这不是实际代码,而是简化版)
#include <stdio.h>
#define NUMBER 5
int function( int NUMBER );
int main (void)
{
function( NUMBER );
return 0;
}
int function( int NUMBER )
{
printf("Hi %d\n", NUMBER);
return 0;
}
最佳答案
#define NUMBER 5
int function( int NUMBER );
#define
是预处理器宏,简单的文本替换。那么,让我们看看您真正要编译的是什么:
int function( int 5 );
这毫无意义。这部分很好:
int main (void)
{
function( NUMBER );
return 0;
}
因为您正在调用 function
的值为5
,但是function
的签名应该如下所示:
int function( int x ); // the argument is a variable, x
关于c - 在 C 中的函数中使用#define 数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13127051/