我對程序編程非常陌生,所以我不確定我的代碼是壞的還是在Visual Studio中做錯了。用gcc編譯的代碼不會在visual studio 2012編譯
所以我有這樣的代碼應該打印一個整數,打印它在內存中的位置,通過內存更改它的值,然後打印新的整數以及它在內存中的位置。
它編譯和運行良好,通過cmd與gcc,但不是在Visual Studio中。
#include <stdio.h>
int main(){
int a = 4;
printf("Integer is: %d\n", a);
printf("Integer is stored at: %p in memory\n", a);
int *pointer = &a;
*pointer = 3;
printf("Integer is now: %d at %p in memory\n",a,*pointer);
getchar();
return 0;
}
視覺工作室給了我這些錯誤,當我嘗試編譯並運行:
9號線:錯誤C2065: '指針':未聲明的標識符
9號線:錯誤C2100:非法間接
線11:錯誤C2065:指針':未聲明的標識符
線11:錯誤C2100 :非法間接
所以你說的是,C的兩個不同版本是不同的?沒有一個「C」......有幾個不同的版本/迭代規格,每個版本都有自己的功能。 –
這可能有所幫助:http://stackoverflow.com/questions/14376511/cannot-declare-variable-at-all-with-windows-driver-kit-build-environment/14377441#14377441 – hmjd
Visual Studio可能是抱怨你'不要遵循ANSI C標準:你不能在任何語句下面聲明任何新的變量。如果你想,切換到C99或C++。 – Orwell