#define MAX_STRING 256;
方法:
每当您在预处理时找到 MAX_STRING 时,将其替换为256;
. 在您的情况下,它将使用方法 2:
#include <stdio.h>
#include <stdlib.h>
#define MAX_STRING 256;
int main(void) {
char buffer [256;];
}
这不是有效的语法。代替
#define MAX_STRING 256;
和
#define MAX_STRING 256
您的两个代码之间的区别在于,在第一种方法中,您声明一个等于的常量,256
但在您定义的第二个代码中,您在源文件中定义MAX_STRING
为代表。256;
#define 指令用于定义预处理器使用的值或宏,以在编译程序源代码之前对其进行操作。因为预处理器定义在编译器作用于源代码之前被替换,所以由#define 引入的任何错误都很难追踪。
语法是:
#define CONST_NAME VALUE
如果;
末尾有 a ,则将其视为VALUE
.
要了解#define
s 究竟是如何工作的,请尝试定义:
#define FOREVER for(;;)
...
FOREVER {
/perform something forever.
}
John Hascall的有趣评论:
大多数编译器都会为您提供一种在预处理器阶段之后查看输出的方法,这有助于调试此类问题。
gcc
可以用 flag 来完成-E
。