#defineとは
・目次
1.#defineとは
2.#defineの使い方
(1) 使用方法、書き方
//ーーーーーーーーーーーーーー
(2) 使用例(#defineを使ったプログラムの作成1:数値の置き換え)
#define A 10 // 10の数値をAと置く int main() { int a = A; //aにAを入れる。 printf("a:%d\n",a); //aの値を表示 }
(3) 使用例(#defineを使ったプログラムの作成2:数式の置き換え)
#include <stdio.h> //数式を置き換える。 #define Test(pin,data) 5*pin*data int main(void){ // Your code here! int num = Test(5,6); //numを出力 printf("num = %d",num); }
実行結果:https://paiza.io/projects/7dne_sqhwXLXf3_wFHLelw?language=c
(4) 使用例(#defineを使ったプログラムの作成3:行を分ける)
プログラム内容:
#defineを使った際に、数式などが長くなり、行を分けたい時がある。
行を分けるには、\を使用する。
#defineを2行に分ける。
#include <stdio.h> //#defineにより、数式を置き換え。 //5*pin*dataを置き換えている。 #define Test(pin,data) 5*pin\ *data int main(void){ // Your code here! int num = Test(5,6); printf("num = %d",num); }
実行結果:https://paiza.io/projects/K0UID90xfYOmNVqBmSrf2A
(5) 使用例(#defineを使ったプログラムの作成4:配列の要素数を算出する関数の作成)
プログラム内容:
配列の要素数は通常の関数の作成方法では、引数の型のバイト数が要素数として
返ってきてしまうため、要素数を求めることはできなかった。
それが#defineを使用すれば、要素数を求める関数として使用することができる。
#include <stdio.h> //要素数を求める式を置き換える。 #define Elm1(num) sizeof(num)/sizeof(num[0]) int main(void){ // Your code here! //要素数を求める。 //変数の宣言 //char a[] = "TEST"; //配列を宣言 int a[] = {2,4,5}; int elm; //aの要素数を算出する。 elm = Elm1(a); //算出した要素数を出力する。 printf("aの要素数(elm)=%d",elm); //本当にあっているかの確認用 //aの要素数を求める。 #if 1 //sizeof:データ型の大きさを求める単項の演算子 int b = sizeof(a); //配列a(全ての合計)のデータの大きさを求める。 int c = sizeof(a[0]); //配列1個当たり(a[0])のデータの大きさを求める。 int d = b/c; //配列の要素数を求める。 printf("\n"); //改行 printf("配列a(全ての合計)のデータの大きさ:%d\n",b); printf("配列1個当たり(a[0])のデータの大きさ:%d\n",c); printf("配列aの要素数:%d個\n",d); //printf("a=%s\n",a); //配列aの値を列挙する。 #endif }
実行結果:https://paiza.io/projects/mOW_itnf66eouLhH8-qVeQ?language=c
関連記事
C言語:
・組み込みの為のC言語基礎知識1(printf) - Project_OKI’s diary
・C言語基礎知識2(for分で処理を繰り返す) - Project_OKI’s diary
・C言語基礎知識3(配列) - Project_OKI’s diary
・知らないと損するお金の話(ふるさと納税、確定申告とワンストップ納税どっちが得?) - Project_OKI’s diary
・C言語基礎知識6(関数) - Project_OKI’s diary
・C言語基礎知識7(構造体1) - Project_OKI’s diary
・C言語基礎知識8(enum:列挙型) - Project_OKI’s diary
・C言語基礎知識9(typedef) - Project_OKI’s diary
・C言語基礎知識10(extern宣言) - Project_OKI’s diary
・C言語基礎知識11(#define) - Project_OKI’s diary