1時間ごとに更新!Amazon.co.jpで今売れている本トップ100   掲示板ランキング



掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板1

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.6224

CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 09:08:01)


お世話になります。
以下のような何の変哲もないソースコードなんですが・・・どういう訳かコンパイルエラーが出てしまい、何が原因なのか判らず困っています。(^^;因みに、OSはXP Home Edition、コンパイラはPICマイコン用のCCS Cです。
------------------------------------------------
/* 変数の定義と型宣言 */
long Sum_sec;           // Total working time (Sec.)
long Sum_min;           // Total working time (Min.)
long Sum_hour;          // Total working time (Hour)
   :
   :
   :
/* メイン関数 */
void main()
{
   :
   :
   printf("Sum of running time = %5U:%2U:%2U",Sum_hour,Sum_min,Sum_sec);
                                                               ~~~~~~~
                                                                  ↑ 
                 エラー:"printf format type is invalid"     
   :
   :
}

------------------------------------------------

思い当たることがありましたら、ぜひご教授くださいませ。m(_ _)m



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:CCS Cのコンパイルエラー 6225 wis 2006/07/26 09:17:56
<子記事> Re:CCS Cのコンパイルエラー 6226 επιστημη 2006/07/26 10:59:32
<子記事> Re:CCS Cのコンパイルエラー 6232 ひでりん 2006/07/26 15:00:34
<子記事> Re:CCS Cのコンパイルエラー 6244 shu 2006/07/26 16:29:22


No.6225

Re:CCS Cのコンパイルエラー
投稿者---wis(2006/07/26 09:17:56)


%U なんてありましたっけ?
素直に %u ではだめですか?



この投稿にコメントする

削除パスワード

No.6231

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 14:57:05)


>%U なんてありましたっけ?
>素直に %u ではだめですか?

おっしゃる通り、%Uよりも%uのほうが作法に合ってますよね。:-)
私もこれから気をつけたいと思います。
しかし、CCS Cでは%Uや%Cも%uと%cと同じように使えるみたいですよ。

一応自力で解決できました。

結論は、変数の型宣言でlong型になっているので、printf関数のフォーマット指定は%Luにしないといけなかった訳ですね。:-)

初心者の間違いとは言え、大変お騒がせ致しまた。
また、何かのおりにアドバイスいただければ幸いです。



この投稿にコメントする

削除パスワード

No.6226

Re:CCS Cのコンパイルエラー
投稿者---επιστημη(2006/07/26 10:59:32)


>以下のような何の変哲もないソースコードなんですが・・・どういう訳かコンパイルエラーが出てしまい、何が原因なのか判らず困っています。(^^;因みに、OSはXP Home Edition、コンパイラはPICマイコン用のCCS Cです。

…マニュアル読みました? 読んでないでしょ。



この投稿にコメントする

削除パスワード

No.6227

Re:CCS Cのコンパイルエラー
投稿者---acid(2006/07/26 11:03:36)


ソースの一部だけ見せられても誰もわかりません。
せめてprintfの前まで位は貼ってください。


この投稿にコメントする

削除パスワード

No.6237

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 15:11:42)


acid様

別に他意はございませんが・・・

>ソースの一部だけ見せられても誰もわかりません。

は?初心者の私でもlong型の変数のときは%Luにしないと駄目らしい
ことに気が付きましたけど・・・このソースだけでは駄目なんですか?

ソースには機密情報が含まれることを考慮して、公開は必要最小限に
留めたいですね・・・少なくとも私の場合は。:-)



この投稿にコメントする

削除パスワード

No.6252

Re:CCS Cのコンパイルエラー
投稿者---shu(2006/07/27 19:43:01)


>>ソースの一部だけ見せられても誰もわかりません。
>
>は?初心者の私でもlong型の変数のときは%Luにしないと駄目らしい
>ことに気が付きましたけど・・・このソースだけでは駄目なんですか?

他の部分にコンパイルエラーの原因がある可能性を考えると駄目です。


この投稿にコメントする

削除パスワード

No.6239

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 15:24:04)


επιστημη様

>…マニュアル読みました? 読んでないでしょ。

いろいろ、すみませんね。マニュアルはPIC16F活用ガイドブック
(ISBN4-7741-2131-2)が主ですね。これって、結構いい加減(?)な
記述があるみたいです。%uや%cを%Uや%Cって書いてあったりします。
(でも、CCS Cの場合どっちでもうまくいくみたいですよ)

いま試しに使っているのは、CCS Cの30日間限定のフリー版ですが、
オンラインヘルプは充実してるみたいです。一応、これをたよりに
やってますが・・・何せ初心者なものですから。(^^;
また、適切なアドバイスをお願いできれば幸いです。



この投稿にコメントする

削除パスワード

No.6253

Re:CCS Cのコンパイルエラー
投稿者---shu(2006/07/27 19:47:24)


>また、適切なアドバイスをお願いできれば幸いです。

マニュアルに書いてある。
そういう意味を含んだアドバイスが、

>>…マニュアル読みました? 読んでないでしょ。

という文に、実は含まれている。


この投稿にコメントする

削除パスワード

No.6259

Re:CCS Cのコンパイルエラー
投稿者---rvr_driver(2006/07/28 22:22:36)


使用しているコンパイラのバージョンは記載していないので不明ですが
CCS Cをググッて見たら以下のサイトから日本語マニュアルを発見しました。

http://www.datadynamics.co.jp/ccs/ccs_manual4_march.pdf
(CCS Cバージョン4のマニュアルです)

この中にprintf()の説明があります。
それによるとフォーマットの指定で %U や %C はありません。

> (でも、CCS Cの場合どっちでもうまくいくみたいですよ)

コンパイルも通り、動作するかもしれませんがマニュアルに記載がない
ので %U や %C は使用しないほうがいいでしょう。
%U はコンパイル通っていないようですし。
何かのタイミングで動かなくなったとしても文句言えません。
コンパイラの仕様で保証していないのですから。

# もしかしたらバージョンによって違いがあるのかも知れません。
# だからこそ掲示板利用宣言にも
# 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
# と記載があるのです。

> >…マニュアル読みました? 読んでないでしょ。
>
> いろいろ、すみませんね。マニュアルはPIC16F活用ガイドブック
> (ISBN4-7741-2131-2)が主ですね。これって、結構いい加減(?)な

επιστημηさんはコンパイラのマニュアルのことを言っていたのだと思います。
そのことを踏まえてNo.6247を見直してみるといいでしょう。
PIC16F活用ガイドブックの中にCCS Cコンパイラのマニュアルがあるのでしたら
そちらを参照したほうがよいと思います。



この投稿にコメントする

削除パスワード

No.6232

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 15:00:34)


自己レスですみません。
一応自力で解決できました。

結論は、変数の型宣言でlong型になっているので、printf関数のフォーマット指定は以下のように%Luにしないといけなかった訳ですね。:-)

初心者の間違いとは言え、大変お騒がせ致しまた。
また、何かのおりにアドバイスいただければ幸いです。

------------------------------------------------
/* 変数の定義と型宣言 */
long Sum_sec;           // Total working time (Sec.)
long Sum_min;           // Total working time (Min.)
long Sum_hour;          // Total working time (Hour)
   :
   :
   :
/* メイン関数 */
void main()
{
   :
   :
   printf("Sum of running time = %5Lu:%2Lu:%2Lu",Sum_hour,Sum_min,Sum_sec);
   :
   :
}

------------------------------------------------



この投稿にコメントする

削除パスワード

No.6242

Re:CCS Cのコンパイルエラー
投稿者---nop(2006/07/26 15:41:04)


>結論は、変数の型宣言でlong型になっているので、printf関数のフォーマット指定は以下のように%Luにしないといけなかった訳ですね。:-)

あなたが最初の投稿に書かれたエラーメッセージが、
まさにそう言っています。
英語だからと言って、
エラーメッセージの理解を怠るのは良くないと思います。
これからは、投稿前に「ご自分で十分な調査」を行って下さい。

>>エラー:"printf format type is invalid"


この投稿にコメントする

削除パスワード

No.6245

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 20:10:27)


nop様

あなたさまの苦言、身に滲みております。

>あなたが最初の投稿に書かれたエラーメッセージが、
>まさにそう言っています。

御意。今更ながら、何でもっと充分吟味しなかったのかと
悔やまれます。

>英語だからと言って、
>エラーメッセージの理解を怠るのは良くないと思います。

一度経験してしまえば、なんてことはないのに・・・。
いい勉強になりました。次回は、もっとまともな
質問を用意して参ります。:-)

>これからは、投稿前に「ご自分で十分な調査」を行って下さい。

初心者とは言え、くだらない質問はするなってことですね。
了解しました。(恐ろしくて、滅多な質問ができないかも)

#まあ、鍛えられていいと思うけど・・・もちょっと、初心者に
#やさしくあってもいいのかな。



この投稿にコメントする

削除パスワード

No.6247

Re:CCS Cのコンパイルエラー
投稿者---επιστημη(2006/07/26 22:47:17)


>>これからは、投稿前に「ご自分で十分な調査」を行って下さい。
>
>初心者とは言え、くだらない質問はするなってことですね。
>了解しました。(恐ろしくて、滅多な質問ができないかも)

ちゅーより、そのコンパイラが特殊なのでなんとも判じかねるとこがあったというのが正直なところ。
そもそも可変個引数はコンパイル時になんのチェックもなされないのが普通なんです。

>#まあ、鍛えられていいと思うけど・・・もちょっと、初心者に
>#やさしくあってもいいのかな。

いや、初心者なればこそ「まずマニュアルを読め」です。
なんかのガイドブックよりもより一次情報(すなわちコンパイラ・ベンダの書いたもの)に近いものをあたるのがスジ。



この投稿にコメントする

削除パスワード

No.6250

Re:CCS Cのコンパイルエラー
投稿者---nop(2006/07/27 14:19:18)


>初心者とは言え、くだらない質問はするなってことですね。
>了解しました。(恐ろしくて、滅多な質問ができないかも)

違います。
投稿をする前に、出来る限りの調査を行わずに、
安易に人に頼らないようにしましょう。
と言うことです。

初心者、初心者と仰いますが、
初心者であることは隠れ蓑にはなりません。

エラーメッセージはプログラミング言語でなく、自然言語です。
例え初心者であっても、エラーメッセージを読み、
その意味を理解すること位は出来るはずです。

「例え初心者であっても出来ること」を十分に行わず、
回答だけを求める姿勢に問題があると言うことです。


この投稿にコメントする

削除パスワード

No.6251

Re:CCS Cのコンパイルエラー
投稿者---acid(2006/07/27 18:14:24)


スレ主はわざわざ全レスしなくてもいいと思うが…
しかも口調が何というか、卑屈というか、慇懃無礼というか。
…このレスにレスは返さなくて結構です。


この投稿にコメントする

削除パスワード

No.6243

Re:CCS Cのコンパイルエラー
投稿者---shu(2006/07/26 16:23:06)


>結論は、変数の型宣言でlong型になっているので、printf関数のフォーマット指定は以下のように%Luにしないといけなかった訳ですね。:-)

long型なら、普通は%ldだと思う。



この投稿にコメントする

削除パスワード

No.6246

Re:CCS Cのコンパイルエラー
投稿者---ひでりん(2006/07/26 20:36:34)


>long型なら、普通は%ldだと思う。

CCS Cでは、long型整数で修飾語を省略するとunsignedになります。
システム上負数を扱う必要がないのでこれでいいのですが、そうすると
printfのフォーマット指定も%Lu(符号なしlong整数)にしておかないと
駄目なのではないでしょうか?何か誤解があればご指摘ください。



この投稿にコメントする

削除パスワード

No.6249

Re:CCS Cのコンパイルエラー
投稿者---yoh2(2006/07/27 00:42:27)


標準Cとはかなり違った仕様のようですので、的外れかもしれませんがひとつ。

もし通るのであれば、%Luではなく、%luにした方がいいと思います。
なぜなら、標準Cでは、printf変換で整数をLで修飾することはできない上、
実数型ではLとlの修飾の意味が異なるため、Lで癖を付けると、標準Cの
世界に来た時に混乱する恐れがあるからです。

または、全く逆に、そのソースが標準Cとは違うということを主張するために、
あえて%LUとしてしまうのもいいかも。

どちらにしろ、%Luでは中途半端な気がします。


この投稿にコメントする

削除パスワード

No.6244

Re:CCS Cのコンパイルエラー
投稿者---shu(2006/07/26 16:29:22)


>思い当たることがありましたら、ぜひご教授くださいませ。m(_ _)m

グローバル変数や、void main()。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧





掲示板提供:(有)リアル・インテグリティ