我寫一個程序Ç預處理語句,應採取不同的基礎上,定義或沒有符號常量(S)的。舉個簡單的例子,我首先想到的是把它寫這樣的:縮進用C
#include <stdio.h>
#define TEST
int main(void) {
int num;
#ifdef TEST
num=1;
printf("YES\n");
#else
num=0;
printf("NO\n");
#endif
printf("%d\n", num);
return 0;
}
然而,在試圖自動縮進我的代碼(特別是通過在VIM使用gg=G
)我縮進丟失:
#include <stdio.h>
#define TEST
int main(void) {
int num;
#ifdef TEST
num=1;
printf("YES\n");
#else
num=0;
printf("NO\n");
#endif
printf("%d\n", num);
return 0;
}
當然,如果我嘗試自動縮進像下面這樣(在兩者之間實際的命令),則會出現混亂:
#ifdef TEST1
commands
#ifdef TEST2
commands
#else
#ifdef TEST3
commands
#endif
commands
#endif
#endif
那麼,有沒有什麼我可以做的有中上面的齒列將被視爲默認值?
預處理器指令不執行程序的結構,所以你不應該這樣縮進編譯conditinally(不一樣的條件代碼!)代碼。你也不應該縮小指令本身。自己'的#else的#ifdef X'被翻譯to'#elif的定義(X)' – Olaf
音符。沒有必要依靠一個編輯器和恕我直言,這是一個讓懶惰的壞習慣。您不會花太多時間縮進代碼。 –
是縮進你的代碼:從列剛開始1 –