舊C編譯器扼流器我試圖將一些相對較新的C代碼移植到較舊的編譯器。#ifndef #define
此編譯器(DICE)來看,扼流圈在第一頭文件和這個成語的第一次出現:
#ifndef SOMETHING
#define SOMETHING
...
#endif /* SOMETHING */
它死在第二行中的標頭: DCPP: "../../code/someheader.h" L:2 C:0 Error:39 Syntax Error
更改爲#define SOMETHING 1
沒有區別。
所以我真的有兩個問題,我是否在使用DICE時選擇了錯誤的選項或者什麼東西,或者那麼C程序員是否在過去使用了一些與ifndef-define相同的成語?
參考文獻:
- DICE Wikipedia Entry
- Original source code,運行在Unix
- 稍微更新Amiga version
- DICE,馬特·狄龍的作者,接着產生DragonFlyBSD
如果是[這個DICE編譯器](http://www.obviously.com/amiga/),那麼肯定會用於典型的包括守衛。 – tinman
我的第一版(第21版)K&R在第208頁介紹了#ifndef,所以它已經存在了一段時間。 –
哦,這個問題帶回了記憶!我甚至爲共享軟件版本付費。 :)除此之外,它應該工作,否則所有系統標題也會失敗。 –