VC++では次のような書き方、
#include<stdio.h> int main(){ int n=5; int i; int a[n]; for(i=0;i<n;i++) a=i; for(i=0;i<n;i++) printf("%d\n",a); }
をするとVC++のコンパイラ(デバッガ?)に怒られるのでこれは駄目な書き方だと思っていたのですが、
gccでコンパイルすると上のような書き方で問題なく動作しました。
手持ちのCの本をみても上のような書き方をしている例はなく、書くとすれば次のようになるのだと思います。
int n=5; int *a=(int)malloc(sizeof(int)*n); 以下略
他にも関数の先頭以外での変数宣言の可否などVC++とgccでは違いがあるようなのですが、どちらを基準に勉強していくべきなのでしょうか?
gccで可になっているものが多いのでVC++のコンパイラが古いと考えるのか、それともgccは普通じゃない書き方を許容するようにしているのかわかりませんが、自分が普段使っているものにあわせて覚えればいいものなのでしょうか?
スレッドを2つたてるのもあれな質問なのでもう一つ質問です。
float f = 1.0f;
のように代入の最後に英字をつける書き方があるようなのですが、これは何を意味するのでしょうか。
以上2つの質問です、よろしくお願いします