[gcc]前置インクリメントと後置インクリメントで生成されるアセンブラコードの違い
今回のお題: 以下の文脈で、前置インクリメントと後置インクリメントを行った。 生成されるアセンブラコードは、iとjでどう変わるのか? #include <stdio.h> int main() { int i = 0; int j = 0; for ( i = 0, j = 0; i < 5 ; ) { printf( "ptn2 i = %d, j = %d\n", ++i, j++ ); } return 0; }#incl…
続きを読む
[gcc]if文と3項演算子では,出力されるコードが異なる
gccのアセンブラ出力を見ていて気になったのでメモ。 C言語ではif文を使わなくても、3項演算子を使用して条件分岐を “( a > b ) ? a : b”のような感じで書く事が出来ますが、両者の書き方で生成されるコードが異なるようでした。 3項演算子を使用した場合(test01.c) #include <stdio.h> int sum( int a, int b ); int main() { int a = 10; int b = 10; int result; result = &…
続きを読む