有沒有辦法只爲這個頭部使用一個定義語句,而不會將類似函數的宏變成函數?使用單個定義語句和包含類似功能的宏的保護?
my.h
文件:
#ifndef MY_H
#define MY_H
#define MIN(x, y) ((x) > (y) ? (y) : (x))
#endif
例如,我能夠做一個常量以下:
pi.h
文件:
#ifndef PI
#define PI 3.14159
#endif
我也是知道的警告關於使用類似功能的宏如: https://stackoverflow.com/a/15575690/4803039
我只想看看是否有更優化/重構的方式。看起來奇怪的是,包含額外的#define
語句,該語句定義了標題正文的其餘部分,而標題正文僅包含#define
語句本身。
儘量定義靜態內聯函數而不是宏。而且我不確定擁有這麼小的頭文件是明智的。我傾向於贊成擁有更少,但更大的頭文件,甚至可能只有一個頭文件(有關預編譯的內容,請參見[本](http://stackoverflow.com/a/12438040/841108)) –