#99 Article 988 Posted at 1995/12/07 01:34:04 by 理科算数 (MAP3702) [SAHOU.1]
Subject: Re:*6 プログラミングお作法の話 /946 ... /941 /940
えー、とても勉強になりそうな企画なので、教えを請いたいと思います。
例えば、
例1
/* 前略 (Article 956 Mick'n さんのソースからの拝借(^^; ) */
for (i = 1; i <= atoi(argv[1]); i++) {
if (i == 3 || i == 5 || i == atoi(argv[1])) {
for (j = 0; j < i; j++) printf("にゃん");
putchar('\n');
} else {
printf("%d\n", i);
}
}
/* 以下、略 */
というソースを、
例2
/* 前略 ( atoi(argv[1]) > 5 を仮定 ) */
for (i = 1; i <= 5; i++) { /* 1 - 5 の処理 */
if (i == 3 || i == 5) {
for (j = 0; j < i; j++) printf("にゃん");
putchar('\n');
} else {
printf("%d\n", i);
}
}
for (i = 6; i < atoi(argv[1]) ; i++) { /* 6 以降の処理 */
printf(%d\n", i);
}
for(j = 0; j < atoi(argv[1]) ; j++) /* 最後の部分の処理 */
printf("にゃん");
putchar('\n');
/* 以下、略 */
というように書き換えれば、atoi(argv[1]) が非常に大きい値ならば、実用
上はともかく、原理的には処理が軽くなるように、素人の私としましては思え
るわけです。
質問は、この思いこみが正しいのかということと、例1のようなソースをコ
ンパイルしたとき、例2のように勝手に最適化してくれるのでしょうかという
ことです。
それとも、最適化というのは、上記であげたようなこととは関係ないのでしょ
うか。
理科算数