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. mongoose findOneメソッドから呼び出し元関数に値を返す方法
- 2. セミコロンを使用せずにC#関数を呼び出す方法は?
- 3. returnを使用せずに関数から値を渡す方法は?
- 4. URLにリダイレクトする方法と、呼び出し元関数に値を返す方法はありますか?
- 5. Swiftで返信せずにfuncを呼び出す方法は?
- 6. 新しいページにリダイレクトせずにDjango関数を呼び出す方法は?
- 7. メッセージボックスを使用せずにBizTalkオーケストレーションを呼び出す方法
- 8. 、クラス名を使用せずにコンストラクタメソッドを呼び出す方法
- 9. RMIを使用せずにクライアントメソッドを呼び出す方法
- 10. get関数を呼び出さずに列挙型の値を返します
- 11. 関数を呼び出すときにテンプレート値を使用する方法は?
- 12. idパラメータを使用せずにjsを通してAngularJS関数を呼び出す方法は?
- 13. Javascriptで元の呼び出し元関数にデータを返す方法はありますか?
- 14. 関数を作成せずにQActionで変数インクリメントを呼び出す方法
- 15. ランダムリスト関数をPythonでchaningせずに呼び出すには?
- 16. テキスト値を返すPostgresql関数を呼び出せません
- 17. javascriptを呼び出さずに関数に引数を渡す方法は?
- 18. Jquery:呼び出し元関数のajax呼び出しの値を返しますか?
- 19. Rails 4:Ajaxリクエストは関数を呼び出し、リダイレクトせずに値を返します
- 20. switch文の後に関数を呼び出す方法は?
- 21. AJAX呼び出しで複数の値を返す方法は?
- 22. Laravel - オブジェクトをインスタンス化せずに静的関数を呼び出す方法
- 23. この関数呼び出しから値を返す方法は?
- 24. setOnClickListenerの呼び出し元を返す方法は?
- 25. 関数の呼び出し元クラスを知る方法
- 26. angularjsで関数呼び出し元を見つける方法
- 27. リファレンスラムダ関数を使用して関数を呼び出す方法は?
- 28. 関数の呼び出しによる呼び出しは、パラメータの元の値を変更しますか?
- 29. AJAXを使用してPHP関数を呼び出す方法
- 30. デフォルトを使用して関数を呼び出す方法
なぜあなたは単に 'return'を使用できませんか? – dreamlax
これを展開する必要があります。 'return'文は、関数から値を返すために使うものです。あなたは何をしようとしていますか? –
質問は本当に少し混乱しています。グローバル変数を使用することはできますが、「関数からの戻り値」と同じではありません。 – khachik