gpt4 book ai didi

c - 了解 C 中定义变量的宏函数

转载 作者:行者123 更新时间:2023-11-30 19:59:29 25 4
gpt4 key购买 nike

根据我的理解,预处理器指令用于在编译之前修改源代码。我正在编写一些作业代码,但我的宏导致错误。在我的作业中,我必须使用 main() 编写多个具有相同变量的文件。我想使用这样的宏。

#define SETUP (i)\
char* memory = (char*) malloc(sizeof(char)*(i));\
char* memory2 = (char*) malloc(sizeof(char)*(i))
#define CLOSE ()\
free(memory);\
free(memory2)

int main () {
int i = 7;
SETUP(i);

/****************************/
Do stuff with memory and memory2
/*****************************/

CLOSE();
}

这样我就可以更改每个文件的 main() 的开头和结尾,而不必更改每个文件。谁能告诉我我不明白的地方吗?

最佳答案

在宏定义中,您在宏名称和左括号之间添加了一个空格:

#define SETUP (args_needed)\

它定义了一个普通的宏,而不是一个带有参数的宏。因此 args_needed 不是宏参数并且未定义。

删除宏名称和左括号之间的空格:

#define SETUP(args_needed)\

调用宏时插入空格即可:

SETUP (10);

但这被许多人认为是糟糕的编码风格。

关于c - 了解 C 中定义变量的宏函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59102743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com