C言語では、処理コードの前に宣言をまとめる必要があった。
C++ではどこでも宣言できる。その中でfor文内で宣言をよく使う。
#include<stdio.h>
int main(void){
for(int i=0;i<5;i++){
printf("%d\n",i);
}
//printf("%d\n",i); 実行できない!!!
return 0;
}
int i変数はforのブロック内で有効です。forを関数と考えればわかりやすい。
mainのブロック内がスコープ(有効範囲)ではありません!!!!!!!!!。
int i変数のスコープはforのブロック内がスコープ(有効範囲)です。
よって、コメントアウトしているprintfでi変数を使うことはできません。
宣言してすぐ使うのはC++のコード。
C++やJavaなどは宣言と処理コードを分けるのではなくなるべく近くで宣言して読みやすくことを優先している。
(もっと進んでる?のがPerlやRubyなどのスクリプト言語、宣言自体がない)
今のところ、OpenCVのサンプルコードでは宣言はブロックの始めに書くCのスタイルだ。
ネット上のサンプルには宣言が処理コード中にあったり、宣言即その変数を処理しているっていうのもある。C++なら問題ないのだ。
for(){}は特殊な関数と理解するといいだろう。
int abc(int x){
x=x+1;
}
この場合もx変数はabc関数内で有効な変数だ。
「今日の訪問数: - 」
「昨日の訪問数: - 」
「今までの訪問数: - 」
最終更新:2010年01月11日 00:57