21
A
回答
32
沒有具體的#define
值。只需檢查__STDC_VERSION__
並自己定義它! ;-)
#if __STDC_VERSION__ >= 199901L
/* C99 code */
#define C99
#else
/* Not C99 code */
#endif
#ifdef C99
/*My code in C99 format*/
#else
/*My code in C99 format*/
#endif
編輯:更一般的片斷,from here。我只是改變了定義的名稱,以防萬一,你會使用他們的代碼了很多:
#if defined(__STDC__)
# define C89
# if defined(__STDC_VERSION__)
# define C90
# if (__STDC_VERSION__ >= 199409L)
# define C94
# endif
# if (__STDC_VERSION__ >= 199901L)
# define C99
# endif
# endif
#endif
+0
現在可能會爲C11添加一個測試。 – chux 2017-11-29 17:34:32
23
#if __STDC_VERSION__ == 199901L
/* C99 */
#else
/* not C99 */
#endif
變化==
到>=
如果你想測試C99及更高版本。
相關問題
- 1. 在c99中被棄用嗎?
- 2. c99僅c99
- 3. 我可以使C/C++ #define私有嗎?
- 4. #define可以有多個參數嗎?
- 5. 用c89和c99編譯gcc 4.4.2默認爲c99嗎?
- 6. '#define xxx'(沒有任何價值!)與'#define xxx yyy'(帶值)形成對比嗎?
- 7. Microsoft visual studio 2010支持c99嗎?
- 8. C99支持還真不普及嗎?
- 9. #define
- 10. 可能把語句放到#define中嗎?
- 11. arduino.h中有一個#define _KEYWORD_用於檢查嗎?
- 12. 如何將「define」定義爲宏,有可能嗎?
- 13. 的#define遠,近的#define WINDEF.H
- 14. Scheme define-macro和/或define-syntax
- 15. Define BOOST_PHOENIX_ARG_LIMIT沒有效果
- 16. 「爲」 C99模式
- 17. C99,C代碼
- 18. getchar_unlocked()在C99
- 19. 隱聲明 - C99
- 20. define('MENU_IS_ROOT',0x0001)和define('MENU_IS_ROOT',1)之間有什麼區別?
- 21. 有沒有辦法'擴展'#define指令?
- 22. 有沒有辦法在c中的另一個#define中執行#define?
- 23. #ifndef #define
- 24. MS VS 2008和C99
- 25. C99複雜鑄造
- 26. c99動態數組
- 27. P99和C99 vs C11
- 28. MAX INT在C99中?
- 29. MISRA C 2004和c99
- 30. 'typeof define ==='function'&& define ['amd']'用於什麼?
術語挑剔:新手叫什麼的#define,大師們稱之爲*宏*或(*宏標識符*當它們特別指代應該替換的東西時)。 – Jens 2011-10-02 19:01:40