我想了解如何在C語言的另一個函數的不同迭代中調用不同的函數。例如,假設我正在調用的函數是A.在第一次迭代中,我想在A中調用函數B,但在所有其他迭代中,我想調用函數C.請注意,迭代不僅在函數A上這是一個更大的程序的一部分,所以我不能在這個函數中放置一個for循環。如何在另一個函數中調用多個函數C
-5
A
回答
1
你可以使用本地範圍的靜態變量來跟蹤如果A已經被稱爲:
void caller()
{
static int called_before = 0;
if (called_before)
{
B();
}
else
{
A();
called_before = 1;
}
}
1
在你的功能,爲什麼不使用反?:
static int count ;
if(count==0)
{
//call function B
}
else
{
//call function C
}
count++;
0
你什麼重新提問需要存儲與功能A關聯並且可以訪問的某種狀態。
默認狀態將指示該函數從未被調用,然後在第一次調用時,函數會檢查狀態,查看它沒有被調用,並且改變狀態以指示它已被調用,然後調用函數B.
所有對A的後續調用都會檢查狀態,看到它被調用,調用函數C.
見Memento模式保持狀態的說明:http://en.wikipedia.org/wiki/Memento_pattern
兩個@ itsme86和@brokenfoot有這樣
0
的例子另一種可能是使用全局變量。
在一個叫頭header_global.h把下面:
extern int GlobalVar=0;
,然後在你的函數把
的#include 「header_global.h」
if (GlobalVar==0)
{
function_B();
GlobalVar++;
}
else
{
function_C();
}
相關問題
- 1. 在另一個函數中調用一個函數。 C#
- 2. 如何在另一個函數內調用函數? C++
- 3. 在另一個函數中調用多個函數Ocaml
- 4. 從另一個函數調用另一個函數C#
- 5. 從另一個函數調用另一個函數在這個
- 6. 如何在另一個函數中調用另一個類的函數
- 7. 如何從C++中的另一個函數調用一個函數?
- 8. 如何在另一個函數中調用函數?
- 9. 如何在另一個函數中調用javascript函數?
- 10. 如何在另一個函數中調用php類函數
- 11. 如何在對象函數中調用另一個函數
- 12. 如何在另一個函數中調用函數
- 13. 如何在Python的另一個函數中調用函數?
- 14. javascript:如何在原型函數中調用另一個函數
- 15. 如何在另一個函數中嵌入函數調用?
- 16. 如何在extjs4的另一個函數中調用函數?
- 17. 如何調用另一個函數內的一個函數Jquery
- 18. 如何從另一個函數調用一個數字到一個函數中?
- 19. 在PL/PGSQL的另一個函數中調用一個函數
- 20. 函數不調用另一個函數
- 21. 從另一個函數調用函數
- 22. 調用函數到另一個函數
- 23. 函數調用另一個函數javascript
- 24. 從另一個函數調用函數
- 25. C++調用函數導致調用另一個函數
- 26. 如何在另一個函數中使用一個函數值?
- 27. 如何將變量從另一個函數調用到另一個函數中
- 28. 調用一個函數在另一個
- 29. 如何從另一個函數調用這個void函數?
- 30. 在另一個函數的調用中調用函數