C++におけるinlineキーワードの役割と実装パターン

C言語マクロとの決別 従来、C言語では高頻度に呼び出される処理を式形式のマクロ(#define)で実装することが一般的であった。これはプリプロセッサによる文字列置換を実行時に行うため、関数呼び出しに必要な引数のスタック積上げやジャンプ命令などのランタイムオーバーヘッドが回避できる点に理由がある。しかし、マクロには構造化プログラミングにおいて重大な制限が残 ...

10月18日 17:38 投稿

C/C++におけるvolatileキーワードの役割と使用例

1. コンパイラの最適化を防ぐ コンパイラは、プログラムの実行効率を上げるために、見た目上冗長なコードを削除したり、最適化したりすることがあります。しかし、この最適化によって、特定の状況下で意図しない動作を引き起こすことがあります。volatileキーワードは、コンパイラに対して「この変数の値は予期せず変更される可能性があるため、最適化しないでください」と ...

7月23日 22:20 投稿

プログラミングにおけるマシンレベル表現 - 定数、変数、演算

📚 注意事項 本ブログの内容は学習目的にのみ使用してください 考え方を理解した後、独自で実装することをお勧めします ご意見・ご質問をお待ちしています タスク : 定数、変数、演算 32ビット定数のロード int f() { return 0x123; /* 291 */ } int g() { return -1; } int h() { return 0x1234; /* 4660 */ } int i() { return 0xbb8; /* 3000 */ } rv32gcc -O2 -c a ...

6月4日 22:58 投稿