C言語のプロトタイプ宣言と#defineマクロの使い方を解説。
#include<stdio.h> int add(int a, int b); // プロトタイプ宣言({}なし、;必須) int main(void) { printf("%d\n", add(3,5)); // 先に使える } int add(int a, int b) { // 定義は後でOK return a + b; }
#includeする#define はコンパイル前に文字列置換を行う指令です。定数や短い関数の定義に使います。#define PI 3.14159 // 定数マクロ #define MAX_SIZE 100 #define SQ(x) ((x)*(x)) // 関数風マクロ int main(void) { double area = PI * 2.0 * 2.0; int a[MAX_SIZE]; printf("5^2 = %d\n", SQ(5)); // → ((5)*(5)) = 25 }
SQ(x+1) は ((x+1)*(x+1)) となり、カッコを付けないと計算が壊れます。必ず全体と各引数をカッコで囲む。この講座の理解度をチェックしましょう!
プロトタイプ宣言により、関数の定義より前に呼び出しがあっても、コンパイラが正しく型チェックできます。
#define はプリプロセッサマクロで、コンパイル前にテキスト置換されます。変数ではないのでメモリを消費しません。
"" はカレントディレクトリから検索、<> はシステムの標準ディレクトリから検索します。自作ヘッダは "" を使います。