宏定义#define和常量const讨论帖

2020-02-05 08:54发布

各位大虾,不知你们在写程序时有没有遇到过这种情况:你在A.C文件中定义了一个宏#define VALUE 20 然后你在B.C中恰好需要用到这个宏。此时你们一般都怎么处理的?如果将#define VALUE 20 这个宏写在A.H 可是可以调用 但编程规范又不建议在头文件中定义宏!另一种做法是将可能会被别的模块调用的宏定义为常量方式 如:const unsigned char VALUE = 20;然后在A.H中声明,那么B模块只需包含A.H头文件就可以调用了,但是这样又会占用一个CHAR 内存的RAM。。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
security
1楼-- · 2020-02-06 12:45
回复【5楼】cumtgao
-----------------------------------------------------------------------
你没做
#ifndef XXX
#define XXX

。。。
#endif
或者
#pragma once
的话,本身就属于你的错误。
cumtgao
2楼-- · 2020-02-06 14:46
回复【7楼】security
-----------------------------------------------------------------------

我一般都做了
#ifndef XXX
#define XXX

。。。
#endif
这样的处理啊,只是在哪里看到过说 头文件只放函数和变量的声明。。。
igiantpanda
3楼-- · 2020-02-06 19:11
规则是死的,人是活的,就像C中不建议使用goto,但有时确实很有用。
biansf2001
4楼-- · 2020-02-06 23:58
我所有的宏都在头文件里
cumtgao
5楼-- · 2020-02-07 02:16
 精彩回答 2  元偷偷看……
l503iu
6楼-- · 2020-02-07 05:08
回复【10楼】biansf2001 花溅泪
-----------------------------------------------------------------------

赞同~~~

一周热门 更多>