int型のXXXX(int型)または無効XXX(int型)return文を使用せずに呼び出し元関数に値を返す方法は?
答えて
あなたグローバル変数(または、少し良く、あなたはファイルスコープで宣言された静的変数を使用することができます)を使用することができますのような関数プロトタイプ、または出力パラメータを取るように関数を変更することもできますが、最終的にはreturn
ステートメントを使用する必要があります。
- 値を割り当てるグローバル変数を持つことができます。
- 整数を格納するオブジェクトを渡すことができます。関数内で変更すると、オブジェクトは値型ではないため、別の場所でも変更されます。
これは、使用しているプログラミング言語によっても異なります。
編集:申し訳ありませんが、私はCの関数から値を返すために
質問にタグが付いています。 – dreamlax
もっと賢明な編集は単に最後の声明を消すだけでしたか? –
グローバル変数を使用せずにBorlandのcコンパイラで行うことができます。 – Muthuraman
2つの標準的な方法は、どちらかにreturn
文で明示的にそれを行うか、にあるCタグを参照してくださいので、私の最後の文を無視しませんでしたポインタパラメータを使用してポインタのオブジェクトに割り当てます。
他の方法もありますが、私は世界の邪悪なコードの量を増やす恐れがあるため、それらには入っていません。これらの2つのうちの1つを使用する必要があります。
使用して参照渡し:
void foo(int* x, int* y) {
int temp;
temp = *x;
x* = *y;
y* = temp;
}
void main(void) {
int x = 2, y=4;
foo(&x, &y);
printf("Swapped Nums: %d , %d",x,y);
}
整数をポインタに変換して(実装定義の動作)、これらのポインタ変数(intへのポインタへのポインタ)のアドレスを両方の引数のintへのポインタを期待する関数に渡すことで、xとyを初期化します。 – dreamlax
* sigh *。これは、手動でポインタをCのコピー専用パラメータに渡す方法が、「参照渡し」とみなされているということです。 2つ目の措置は、例での最初の亀裂が間違っているため、実行時に何が起こるかを知っていることです。 **この答えは、可能な限りCを避けるべき理由のための* Exhibit A *です。** –
私は以下のようになっています:int x = 2、y = 4; –
を一般的に、あなたはあなたの関数への外部変数への参照を提供します。
void foo(int *value)
{
*value = 123;
}
int main(void)
{
int my_return_value = 0;
foo(&my_return_value);
printf("Value returned from foo is %d", my_return_value);
return 0;
}
このシナリオは必要ありません。 Borland Cコンパイラで試してみてください.... – Muthuraman
@Muthuraman - あなたが言っていることは分かりませんが、これはかなり基本的な標準Cのように見えます。 Borland Cコンパイラでうまくいくはずです。 –
return 0の代わりに別のステートメントを使用する方法。あなたのコードで – Muthuraman
単純な答えには、最初のものと同じように、戻り値としてint return値を使用する必要があります。
原則として、intへのポインタをキャストしてパラメータとして渡し、キャストして戻して変更するなど、恐ろしいことをすることは可能です。他の人があなたに言及しているように、あなたがこれをすることのすべての意味を理解していることを確かめなければなりません。
int wel();
int main()
{
int x;
x = wel();
printf( "%d \ n"、x);
return 0;
}
int型WEL()
{
レジスタINTのTVRのASM( "斧")。
tvr = 77;
}
ubuntuマシンのGCCコンパイラでコンパイルされています。ボールドランドコンパイラでは、別の方法を返す。
ここではreturn文を使用していません。 – Muthuraman
そしてなぜ、なぜ、あなたはこれをしたいのですか?絶対に目的はありません。アセンブラに依存しているので標準C(あるいはCでもない)です。全く移植できません。 – Arkku
(哲学的にも、レジスタはグローバル変数であると主張するかもしれません。) – Arkku
複数の値を返す必要がある場合は、新しい割り当て構造体へのポインタを使用しないでください。
typedef struct { int a, char b } mystruct;
mystruct * foo()
{
mystruct * s = (mystruct *) malloc(sizeof(mystruct));
return s;
}
テストされていませんが、有効である必要があります。
- 1. URLにリダイレクトする方法と、呼び出し元関数に値を返す方法はありますか?
- 2. RMIを使用せずにクライアントメソッドを呼び出す方法
- 3. get関数を呼び出さずに列挙型の値を返します
- 4. Javascriptで元の呼び出し元関数にデータを返す方法はありますか?
- 5. Jquery:呼び出し元関数のajax呼び出しの値を返しますか?
- 6. 関数の呼び出し元クラスを知る方法
- 7. setOnClickListenerの呼び出し元を返す方法は?
- 8. コンソールでjavascript関数を繰り返し呼び出す方法
- 9. kernel32.dll関数を呼び出す方法C++でLoadLibrary(..)を使用してGetTickCount()を呼び出す方法
- 10. 値を引用せずに、RailsのRJSからjavascript関数呼び出しにオブジェクトを渡しますか?
- 11. コンソールを表示せずに_wsystemを呼び出す方法は?
- 12. ajaxスライドショーエクステンダーのparametered関数呼び出しの使用方法は?
- 13. JPAから値を返すカスタムOracle関数を呼び出す方法
- 14. RCWを使用せずにCOMオブジェクトメソッドを呼び出す最も速い方法
- 15. クラス名を使用せずにインスタンスメソッドからクラスメソッドを呼び出す方法
- 16. sshを使用せずにリモートマシンのスクリプトを呼び出す方法
- 17. ajax呼び出し要求から値を返す関数
- 18. dplyr関数の呼び出しで不正な値を返す
- 19. data.tableを呼び出す関数を呼び出す関数の記述方法?
- 20. lincをクラス関数に渡して呼び出す方法は?
- 21. phpにアクセスしてモジュール関数を呼び出す方法は?
- 22. MVVMを関数呼び出しに実装する方法は?
- 23. jQueryのclick()関数で呼び出し元のidにアクセスする方法
- 24. jQuery getJSON - 呼び出し元関数への戻り値
- 25. 呼び出し元に基づいた呼び出し元の振る舞いを、リフレクションなしで呼び出し元をPythonでメンバーにする方法
- 26. C++構文を使用してメンバ関数を呼び出すだ関数ポインタ
- 27. Jquery ajaxの呼び出し値を返す方法は?
- 28. 値を返す関数を呼び出すpowershell
- 29. 呼び出された関数から(元の関数で)javascript関数を呼び出していますか?
- 30. コードを表示せずにjsを呼び出す方法
なぜあなたは単に 'return'を使用できませんか? – dreamlax
これを展開する必要があります。 'return'文は、関数から値を返すために使うものです。あなたは何をしようとしていますか? –
質問は本当に少し混乱しています。グローバル変数を使用することはできますが、「関数からの戻り値」と同じではありません。 – khachik