我看到下面的定義在ARM編譯器的標準頭文件stdio.h
:的#define __CLIBNS ::的std ::在C標準的頭文件,如stdio.h中
#undef __CLIBNS
#ifdef __cplusplus
namespace std {
#define __CLIBNS ::std::
extern "C" {
#else /* ndef __cplusplus */
#define __CLIBNS
#endif /* ndef __cplusplus */
這樣做有什麼意義?如果我必須移植在gcc中使用_CLIBNS
的代碼,該怎麼辦? 我應該使用類似的宏嗎?
'_CLIBNS'是一個保留的標識符,所以無論誰寫它搞砸了(加上它不會衝突......) – 2014-09-30 07:09:31
這個代碼是從標準頭文件本身,即stdio.h,這個定義爲armcc的__CLIBNS,我需要將使用此宏的代碼移植到另一個編譯器,即gcc,所以我想了解任何等效的編譯器定義是否在gcc – Madhu 2014-09-30 08:35:30