main関数で呼び出される定義済みの関数を使いたいと思います。この事前定義された関数は、受信したパケットからいくつかの値を取得し、main関数で使用したい受信機からのタイムスタンプを言うことができます。しかし、この事前定義された関数はvoid型であり、何も返すことができないという問題があります。この場合、ローカル変数が失敗するため、グローバル変数の概念を使用することを考えています。誰かがこの事を実装するための例を挙げてもいいですか?void関数から値を取得する方法は?
1
A
答えて
4
関数が事前定義されている場合は、結果を返すための事前定義済みの方法が既に存在する必要があります。
void関数が結果を返す1つの方法は、そのパラメータの1つがポインタである場合です。次に、そのポインタが指すオブジェクトに結果を格納できます。
3
利用などの機能:
void f(int *a)
{
*a = 5;
}
それは変更されますが、voidを返します。
C++、それはリファレンスを使用することをお勧めします使用している場合:あなたは、いくつかの一般的なコールバックをしたい場合は
void f(int &a)
{
a = 5;
}
0
することは、あなたは、例えば使用することができますこのプロトタイプ:
void (*callback)(void *);
適切なデータを参照渡しとして返します。
2
グローバル変数を使用しないようにする必要があります。スレッドの安全性を高めるために余分な努力を払う必要があります。また、コードを難しくしたり、バグなどを導入しやすくします。 )。
ポインタを使用するか、戻り値を変更することができます(いずれにしても、関数プロトタイプを変更する必要があります)。もう1つの解決策は、 "怒っている"もの(変更しようとしているもの)を呼び出してそこで結果を処理し、オリジナルの関数を元の関数に続けて関数a()が返すようにする関数を定義することですあなたがグローバルの使用方法を求める場合は何が必要、しかし
1
(1はvoidを返す)内のB()を呼び出します。
int gGlobalValue;
void funcion()
{
int returnValue = 1; // Or whatever
gGlobalValue = returnValue;
}
これは、非保守し、あなたが望むものをやっての貧弱な方法ですしかし、ここはそれです。
関連する問題
- 1. 関数からbase64値を取得する方法は?
- 2. 関数から値を取得する方法は?
- 3. 関数から別の関数への値の取得方法
- 4. Ajaxリクエストからコールバック関数の値を取得する方法
- 5. 関数から値を取得する方法
- 6. 他の関数から値を取得する方法 - PHP
- 7. jquery .each()関数からインデックス値を取得する方法
- 8. 関数から値を取得する方法
- 9. Javascript:メソッド内の関数から値を取得する方法
- 10. typescript(ionic2)で関数から値を取得する方法
- 11. JS関数から動的な値を取得する方法
- 12. 関数から値を取得する
- 13. $ .getjson .done関数から変数を取得する方法は?
- 14. SPから取得した関数から値を返す方法は?
- 15. ベクトルを返す関数からベクトル値を取得する方法は?
- 16. htmlフォームから値を取得し、PHP関数を操作する方法は?
- 17. 関数引数の値を取得する方法は?
- 18. HtmlのJavaScript関数から戻り値を取得する方法は?
- 19. サブルーチンfunctrionからmain関数への戻り値を取得する方法は?
- 20. 非同期関数からハッシュ値を取得する方法は?
- 21. モジュール関数から終了コード値を取得する方法は?
- 22. Swift 2.0のvoid関数で値を返す方法は?
- 23. Datatables:別の関数から変数値を取得する方法
- 24. プロファイルアドレスから関数名を取得する方法は?
- 25. オブジェクトから関数定義を取得する方法は?
- 26. 再帰関数からデータを取得する方法は?
- 27. PHP json_encode関数からJSONを取得する方法は?
- 28. 3テーブルからデータを取得する方法は?関数
- 29. データベースから値を取得する関数を作成する方法
- 30. 変数にインクルードステートメントから値を取得する方法は?
あなたはCかC++ですか? – Puppy
多分私は何かを理解していないかもしれませんが、関数を変更してグローバル変数に結果を入れることができれば、それを変更してあなたが望むものを返すのはなぜですか? –
したがって、関数はソースコードで定義され、自分のCファイルでは定義されません。ソースコードはcontiki OSのものです。この関数は他の場所でも使用できるので、そのまま残しておきたいと思います。しかし、グローバル変数を内部に格納してそこに格納するだけであれば、自分のCファイルに行くのが良いと思います。 – Acid