私はPHPプログラマであり、Cプログラムの作成をテストし、引数を渡して、PHPで出力するのはshell_exec()
です。整数値がCで正しく表示または計算されないのはなぜですか?
とにかく、私は単純に一緒に2つの数値を追加するには、このコードを書いた:
#include <stdio.h>
int leftop, rightop, result;
int main(int argc, char *argv[])
{
leftop = (int) argv[1];
rightop = (int) argv[2];
result = leftop + rightop;
printf("The result of %i add %i = %i\n", leftop, rightop, result);
getchar();
return 0;
}
私はMinGW
がgcc -o main.c mycprogram.exe
を使用して、それをコンパイルします。
shell_exec()
(php)またはコマンドラインからプログラムを実行すると、次の結果が得られます。
./mycprogram.exe 25 25
The result of 7150824 add 7149184 = 14300008
その後、私は再びそれを実行し、取得:
明らかThe result of 6692040 add 6692072 = 13384112
私は結果が50
ことを期待しています。
どうして私は正しい結果を得られませんか?
ご回答いただきありがとうございます。なぜint型にキャストすると値が得られるのか説明できますか?私はCがもう少し何をしているのかを理解するのに役立つでしょうか? –
@AdamCopleyすでに答えを更新しました。 –
私は実際にメモリアドレスを整数にキャストしましたか?したがって、大きな数字ですか? –