무역으로 저는 PHP 프로그래머이고 C 프로그램을 테스트하고, 인수를 보내고, PHP로 결과를 shell_exec()
을 사용하여 테스트하려고합니다.정수 값이 C에서 올바르게 표시되거나 계산되지 않는 이유는 무엇입니까?
어쨌든, 나는 단순히 두 개의 번호를 추가하려면이 코드를 작성 :
#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) 또는 명령 줄에서 프로그램을 실행할 때 다음과 같은 결과가 나타납니다.
The result of 7150824 add 7149184 = 14300008
./mycprogram.exe 25 25
The result of 6692040 add 6692072 = 13384112
50
이 될 것으로 기대합니다.
어떻게 올바른 결과를 얻지 못합니까? (일반적으로 argv[n]
) 문제가
답장을 보내 주셔서 감사합니다. int로 캐스팅 한 결과 값을 얻었을 가능성이 있습니까? C가 무엇을 더하고 있는지 이해하는 데 도움이됩니까? –
@AdamCopley 이미 답변을 업데이트했습니다. –
그래서 메모리 주소를 정수로 효과적으로 캐스팅 했습니까? 그러므로 큰 숫자? –