A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© dio925_heima 中级黑马   /  2015-3-15 10:32  /  1320 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

宏定义#define   属于预处理指令  它的作用范围是从它出现的位置到文件尾。
我现在写一个程序,分成了多个文件,而多个文件都需要一个初始常量来进行计算。
我选择用宏定义,比如 #define number 5  //意思是编译之前把文件中的number都替换成5
但是如果这个常量需要更改的话,每个文件中的#define nember 5都要改。有什么办法可以向全局变量那样,在一个文件中定义并赋值,其他文件只做变量的声明呢?

比如:
main.c 文件中
int  a = 5;
test.c 文件中
exturn int a;

6 个回复

正序浏览
宏定义一般都大写,和变量一般不会冲突的。
回复 使用道具 举报
在一个公共的头文件中去宏定义 例如 #define MAX_NUM 15  而在其他的源文件中都要包含这个头文件即可。
回复 使用道具 举报
我觉得可以结合多个宏
在这个文件中定义
而在另一个文件中判断#iddef
再在里面覆盖原来的宏
回复 使用道具 举报
fantacyleo 发表于 2015-3-15 10:33
把宏定义放在一个文件中,在其他文件中include即可

这个方法可以,不过要注意多次声明的函数问题
回复 使用道具 举报
有道理哇。看来我对于大型项目文件结构还需要学习啊。
回复 使用道具 举报
把宏定义放在一个文件中,在其他文件中include即可
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马