関数内で引数の値変更禁止
構造体を関数にポインタ渡し(参照渡し)して、関数内で
構造体の中を変更して欲しくない時は仮引数の型の前に
constをつければよい。
※構造体でなくても、整数等も同様。
#include <stdio.h>
#include <stdlib.h>
typedef struct _aaa {
int a;
}aaa;
void func_a(const aaa* b) {
b->a = 45;
return;
}
int main() {
aaa b;
func_a(&b);
printf("%d\n", b.a);
return 0;
}
【コンパイル結果】
エラー C2166 左辺値は const オブジェクトに指定されています。