#include <stdio.h>
#define READ8(Address) \
(*((volatile long *)(Address)))
int main()
{
int Array[2];
long out_value;
Array[0] = 55;
Array[1] = 66;
out_value = READ8(&Array[0]);
printf("%d\n", out_value);
}
私は8ビットデータ、16ビットデータおよび32ビットデータを読み込み、out_value変数に格納しようとしています。私はint型とlong型のマクロでデータ型を変更することでデータ型の読み込みサイズを変更していますが、putを55としてのみ出力します。私はポインタ型間のキャスト55とも5566.C言語のアドレスから8ビットまたは16または32ビットを読み取る
あなたは何をしたいのか分かりません。より良い例を投稿できますか? – Fefux
これを実行しているシステムは何ですか? – melpomene
intが8ビットでない場合、outvalueが印刷されない場合でも、8ビットのunsigned charを使用できます。5566 –