回答
由於這是目前寫的,很少有可能有意義使用它,除非你只想處理基礎上的X
值假案。
恕我直言,你可以把它重新寫成
#define IS_THIS_CORRECT(X) if(X)
然後,你可以使用它像
int p = 5;
IS_THIS_CORRECT(X)
{
printf("yay !!!\n");
}
@ForceBru感謝編輯。 :-) –
我猜測,但只有這樣,這使得任何意義,我是如果它應該被用作
IS_THIS_CORRECT(foo) else { do_something(); }
儘管如此,仍然很奇怪。
非常感謝您的意見。 – user3593776
#define IS_THIS_CORRECT(X) if(X){}
它可以用來檢查是否X
(任意值)不爲零,或者不是一個空字符串等,你可以做以下
IS_THIS_CORRECT("Hello")
else puts("The string is empty");
你最好環繞X
與另一一對大括號更多的安全性:
#define IS_THIS_CORRECT(X) if((X)){}
我建議你到這個預處理語句重命名爲IT_IS_CORRECT
甚至IS_CORRECT
爲更可讀性。
額外的括號似乎是一個壞主意。 'X'已經括號了,所以添加它不是必須的,但是會使用通用編譯器來壓制'IS_THIS_CORRECT(foo = bar)'的有用編譯器警告。 – Wintermute
@Wintermute,我只是關注K&R的解決方案。據我所知,他們總是說,必須將這些額外的大括號添加到預處理語句中,如#define add(x,y)(x)+(y)'。嘗試刪除大括號並執行'add(5 + 7,10 + 2)' – ForceBru
這大部分都是如此,但是在if(X)中已經有一對圓括號做這項工作,這些圓括號意味着:確保'X'被視爲一個單一的實體。 (不好的例子,順便說一下,使用'mul'宏可以更好地工作)。 – Wintermute
- 1. 如何使用預處理語句
- 2. C++,預處理器語句
- 3. Testrun預處理器語句
- 4. 如何使用IN子句使用PDO預處理語句?
- 5. 預處理語句
- 6. ParseKit - 如何正確處理預處理器語句?
- 7. 使用PHP PDO預處理語句
- 8. PDO - 使用預處理語句
- 9. 使用多個PDO預處理語句
- 10. 使用fmdb打印預處理語句
- 11. 使用預處理風格的語句
- 12. mysqli_fetch_array(),預處理語句和LIKE語句
- 13. 如何在標記參數中使用句點以便PDO預處理語句?
- 14. 自動縮進預處理器語句
- 15. Laravel 4預處理語句
- 16. 預處理語句執行
- 17. 預處理語句問
- 18. 預處理語句與
- 19. 記錄預處理語句
- 20. 預處理語句功能
- 21. 在C預處理語句
- 22. 油滑預處理語句
- 23. 如何用if語句替換預處理器宏?
- 24. 如何在C++中使用預處理器指令的幫助下在語句之間插入語句?
- 25. 在SELECT語句中使用sqlite預處理語句
- 26. 如何在PHP中使用mysqli預處理語句?
- 27. 如何使用mysqli預處理語句綁定N個參數?
- 28. 您如何使用PDO預處理語句和BIT(1)列?
- 29. 如何使用預處理語句插入到SET類型PHP
- 30. 如何在Mysqli中使用fetch_array與預處理語句?
這不是一個函數 – ForceBru