実現したいこと
ポインタ変数の変数宣言や表記方法への知見を広げたい。
前提
現在RX64Mマイコンを使用し、e2studioにてプログラムを書いています。
メーカーが出しているAPIリファレンス内でのポインタ変数の表記が見たことないをしていたため、
どういったものなのか知りたい。
表記について
下記に実際のソースコードではないですが、使用されている変数などについてまとめます。
C
1typedef unsigned char uint8_t 2 3volatile uint8_t g_sci0_tx_buf; 4 5g_sci0_tx_buf = 'A'; 6 7R_Config_SCI0_Serial_Send((uint8_t *)&g_sci0_tx_buf, 1U); 8 9//Renesasの関数の資料にはこのように書かれています。 10MD_STATUS R_<Config_SCI0>_Serial_Send ( uint8_t * const tx_buf, uint16_t tx_num ); 11
疑問点
R_Config_SCI0_Serial_Send
と書かれた関数の引数として、
(uint8_t *)&g_sci0_tx_buf
が渡されていますが、 *
と &
を同時に使用すると、
①ポインタ参照先のデータ型が「uint8_t
」
②データ型をポインタ型にする「*
」
③g_sci0_tx_buf
をアドレス演算子にする「&
」
なので、g_sci0_tx_bufが存在している番地の番地?になってしまうのではと思いました。
この記法の意味とメリットを知りたいです。
回答3件
あなたの回答
tips
プレビュー