bgr*_*nks 0 c macros include c-preprocessor
我目前正在学习C编程语言(来自Java),我对如何定义宏感到困惑.
为了让其他代码使用宏,头文件必须具有它.但是如果我在头文件中定义宏,那么源文件就无法使用它.我是否必须在两者中定义它,还是必须#include源文件自己的头文件?
源文件实际上总是包含它们的"自己的"头文件 - 即,声明源文件中定义的函数的头.在实际定义函数之前声明函数是完全合法的并且通常是可取的:如果标题意外不匹配,您可能会遇到编译错误,这是一件好事.
首先#include本质上就像直接在文件中插入文件一样.它是由编译器预处理器,其在运行之前运行的编译器.Google C预处理器获取更多信息......
通常设置为:
#include "macros.h"
...
printf("Macro value %d\n", MACRO_HERE(1) );
Run Code Online (Sandbox Code Playgroud)
在你的头文件中,macros.h
#ifndef MACROS_H_
#define MACROS_H_
#define MACRO_HERE( n ) ( n + 1 )
#endif
Run Code Online (Sandbox Code Playgroud)
如果稍后有另一个包含macro.h的包含文件,则包装的#ifdef会阻止宏被重新定义
另请参阅:#pragma once(在许多编译器中也广泛使用)
| 归档时间: |
|
| 查看次数: |
16620 次 |
| 最近记录: |