模擬條件
回答
我希望你不想要的只是'如果'或'三元'。
#1
如何:
相反的:if (condition) printf("Hi");
用途:
condition && printf("Hi");
短路評價。這與使用if
非常相似。
#2
對於if (condition) a(); else b();
使用:
int (*p[2])(void) = {b, a};
(p[!!condition])()
使用函數指針陣列,以及雙重否定。
#3
又一變接近三元運算符(函數,雖然)
ternary_fn(int cond, int trueVal, int falseVal){
int arr[2];
arr[!!cond] = falseVal;
arr[!cond] = trueVal;
return arr[0];
}
使用它像ret = ternary_fn(a>b, 5, 3)
代替ret = a > b ? 5 : 3;
switch(condition){
case TRUE:
ourcode();
break;
default:
somethingelse();
}
使用函數指針:
void ourcode(void){puts("Yes!");}
void somethingelse(void){puts("No!");}
void (*_if[])(void) = { somethingelse,ourcode };
int main(void){
_if[1==1]();
_if[1==0]();
return 0;
}
這依賴於真正的布爾表達式求值爲1,這對gcc來說是正確的,但我認爲它不被標準保證。
邏輯運算符('==','!=','!','>','<', '> =','<=','&&'和'|| ')可以是0或1. – caf 2011-04-01 06:54:32
您可以給出一些更好的名稱而不是'_if'。 – SuperSaiyan 2011-04-01 07:05:05
它比p []()更好:-) – regularfry 2011-04-01 08:38:05
- 1. mockito的模擬限制條件
- 2. 模擬事件日誌和事件日誌條目
- 3. 模擬DataGridView.DataChanged事件?
- 4. 模擬「ontype」事件
- 5. 模擬keydown事件
- 6. 在Android模擬器條碼掃描
- 7. 模擬iPhone 5的黑條 - Xcode
- 8. Android模擬器不顯示信號條
- 9. 條約中的彈簧模擬測試
- 10. 條件鏈接庫時,開關建立從模擬器設備
- 11. 集成測試,它模擬異常/回滾條件AbstractTransactionalJUnit4SpringContextTests
- 12. 如何在Rails 5中模擬`has_many`關聯的`OR`條件?
- 13. 如何模擬構造器競態條件?
- 14. 如何向Python中的模擬函數提供條件參數?
- 15. $ prompt =($ defaultValue,$ prompt)[[bool] $ prompt] - 模擬PowerShell中的三元條件
- 16. 在測試中模擬可變網絡條件
- 17. 如何使用「條件」模擬「if-else」邏輯?
- 18. 模擬gdb/lldb的競態條件是否可行?
- 19. 如何在以下情況下模擬NOT IN SQL條件
- 20. 有條件編譯的iOS和模擬器在XCode 4.x
- 21. 如何模擬tcp同時打開和關閉條件?
- 22. 模擬數據存儲中的「OR」條件
- 23. Pytest與模擬/ pytest模擬
- 24. 模擬電路模擬庫?
- 25. 測試:模擬模擬
- 26. 模擬犀牛模擬-MVVM
- 27. 模擬從WSDL文件
- 28. 模擬文件與PowerMockito
- 29. iOS 4.2模擬器文件?
- 30. 模擬按鍵事件
與'while'一樣嗎? – 2011-04-01 06:20:59
你爲什麼想這樣做? – jeffythedragonslayer 2011-04-01 07:14:53
@da密碼猴 - A:好奇心 – 2011-04-01 07:29:37