こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

(Mac) sizeof演算子のコンパイル

現在MacBookAirにて入門書を参考にC言語を学んでいます。
その中で、

#include <stdio.h>

int main(void)
{
int a = 1;

printf("short int型のサイズは%dバイトです。\n", sizeof(short int));
printf("変数aのサイズは%dバイトです。\n", sizeof(a));

return 0;
}
と入力しコンパイルすると
sample21.c:7: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’
sample21.c:8: warning: format ‘%d’ expects type ‘int’, but argument 2 has type ‘long unsigned int’
と表示されコンパイルすることができません。
なんども見直してコードに間違いはないと思いますが、原因が解りません。
他のコードは問題なくコンパイルできます。
この先、sizeof演算子を使って値を求めなければならない章があり、非常に困っています。
どなたか解決策を教えてください。お願いします。

投稿日時 - 2011-08-29 21:55:44

QNo.6976378

困ってます

質問者が選んだベストアンサー

コンパイルできています。出ているメッセージは警告であって、エラーではありません。
コンパイル時の警告をなくすには、
"%d"

"%u"
あるいは
"%lu"
あたりにしてみるといいのではないでしょうか。

投稿日時 - 2011-08-29 22:05:49

お礼

早急な回答ありがとうございます。
"%lu"に変えてみると無事コンパイルできました。
結果が変わった理由も自分で調べて復習したいと思います。

投稿日時 - 2011-08-29 22:18:08

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

原因はちゃんと、そのメッセージに書かれています。
辞書を引きながらでも訳してみることをおすすめします。

投稿日時 - 2011-08-29 22:13:19

お礼

回答ありがとうございます。
警告文の意味を改めて調べようと思います。

投稿日時 - 2011-08-29 22:20:28

あなたにオススメの質問