調用函數有哪些不同的方法?例如,我可以不用()調用一個函數嗎?調用函數有哪些不同的方法?
3
A
回答
4
5
您可以通過名字來稱呼:
function_name(args);
您可以通過函數指針調用:
void (*function_pointer)(int, char *) = ...;
(*function_pointer)(3, "moo"); // classic function pointer syntax
function_pointer(3, "moo"); // alternate syntax which obscures that it's using a function pointer
不,你不能調用一個函數,而無需使用()
。你可以通過使用宏來隱藏()
,但它只是隱藏它們的位置;最後你必須在某處使用()
。
3
1
有幾種迂迴的方式來調用一個函數而不使用()。命名函數「main」(使用正確的參數&返回類型)是一種好方法。您可以將其註冊爲中斷處理程序。您可以通過砸堆棧欺騙編譯成跳進去(不便攜和不建議,可與海灣合作委員會的64位x86):
#include <stdio.h>
void foo()
{
printf("In foo\n");
}
void bar()
{
long long a;
long long *b = &a;
void (*fooptr)() = &foo;
b[2] = (long long)fooptr;
}
int main()
{
bar();
}
+0
請評論你的代碼!我不明白它... – drigoSkalWalker 2010-06-12 18:24:26
相關問題
- 1. 在node.js中使用require()函數有哪些不同的方法?
- 2. 這些不同的函數定義有哪些優缺點?
- 3. 在Windows中使用目錄有哪些不同的方法?
- 4. 用Java轉換XML有哪些不同的方法?
- 5. 使用TFS 2015部署數據庫更改有哪些不同的方法?
- 6. 哪些方法在內部調用GetHashCode?
- 7. 這些方法從哪裏調用?
- 8. 更換光標有哪些不同的方法?
- 9. Java EE會話複製有哪些不同的方法?
- 10. ASP.NET MVC中有哪些不同的重定向方法?
- 11. 在SQL Server中處理'Enumerations'有哪些不同的方法?
- 12. 開發Web服務器有哪些不同的方法?
- 13. 確定哪些函數被調用
- 14. 加快從數據庫檢索數據的不同方法有哪些?
- 15. 如何調用通過它的函數方法不同的ID?
- 16. C#調用本地C++所有函數:使用哪些類型?
- 17. 有沒有辦法知道從外部DLL調用了哪些函數?
- 18. 不同的調用方法?
- 19. 不同參數的Java方法調用
- 20. 調用不同的函數
- 21. 有沒有更簡單的方法來使用jQuery調用這些函數?
- 22. 在Openbravo中導入/導出客戶端數據有哪些不同的方法?
- 23. 有沒有方法來decltype不可調用函數的結果?
- 24. 不同的方法調用c + +構造函數
- 25. 解析HTML有哪些方法可用?
- 26. iOS LinkedIn應用有哪些不同的url方案?
- 27. 使用不同的方法將ODBC數據庫分發到不同的機器有哪些缺陷和優點?
- 28. 本地遠程過程調用有哪些方法?
- 29. 哪些Java方法將被調用(繼承,沒有@Override)
- 30. C#方法 - 哪些參數去哪裏?
不這樣做,讓你的邪惡? – 2010-06-11 20:20:21
它只是關於C還是關於C++? – 2010-06-11 20:22:35
尋求C++,並且有大量的方法可以在不使用()的情況下調用函數,而使用重載的操作符。 – stusmith 2010-06-11 20:23:13