Arduino初心者熱烈大歓迎質問スレ part20at DENKI
Arduino初心者熱烈大歓迎質問スレ part20 - 暇つぶし2ch184:774ワット発電中さん
18/02/10 17:50:38.09 7s63zHMO.net
>>164
なんか説明が変だなあ。
size_t HardwareSerial::write(const uint8_t *buffer, size_t size);
という宣言の意味は、bufferというポインタの指してる先がuint8_t型の
データで、それは変化しない。という意味だよ。
volatile byte test[16] = {0}
という宣言は、文字通りtest配列の中身がvolatileで、中身がいつ変化するか
予想できませんと言っている。
勝手に変化する配列要素を、変化しない値を指すはずのbufferポインタで
指したら矛盾するだろ?
ということだと思うが?
ちなみに、CやC++の宣言は、変数名に近い方から順に解釈するのが正しい。
以下の宣言を正しく読めるかな?
int *(ar[8])
int (*ar)[8]
const int *ar
int * const ar
const int *volatile ar;
答え
int *(ar[8]) はarは8要素の配列で、一つ一つが指している先がint型。
int (*ar)[8] はarが指している先は8要素の配列で、一つ一つがint型。
ar++とやるとint 8個分ポインタが進む。
const int *ar はaの指している先は、値が変化しない(代入も不可)int型。
int * const ar はarは値が変化せず(代入も不可)指している先がint型。
この場合、初期化時に値を入れないと使い物にならない。
const int *volatile ar;
考えてみてね。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch