2017.6.13
前へ
次へ
ホームページトップへ戻る

マイコン独立大作戦
CRT/VGAIF+KEYIF+SDCARDIFボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
WindowsパソコンにUSB接続して使う現行方式はそれなりに便利ではありますが、ときとしてWindows
のしがらみから開放されて、小さいながらも独立した一個のパソコンとして機能したいと思うこともあります。
昔はそれが普通のことだったのですが、安価なCRTディスプレイが生産中止となって久しい今日ではそれ
は叶わぬことと諦めていたのですが…。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[総合第87回]


●STDIO.Hは必要でした

AZTEC Cをさわることになったのは、MYCPU80、ND80Z3.5、ND8080をご購入いただいたお客様から、1年ほど前にいただいたお問い合わせのメールがきっかけでした([総合第78回])。
そのお客様(東京都にお住まいのY様)からメールをいただきました。
前回私はAZTEC Cではstdio.hは不要らしい、と書いたのですが、Y様からいただいたのは、stdio.hは必要です、というご指摘のメールでした。

そのご指摘によりますと、前回、例として説明をしました、EXMPL.CとTEST4B.Cはたまたま標準的なコンソール出力しか使われていない簡単なプログラムだったために、例外的にstdio.hがなくてもエラーにならずにコンパイルできた、というのがどうやら本当のところのようです。

stdio.hが必要なサンプルとして、Y様からは次の2つのサンプルプログラムをメール添付していただきました。

こちらはTEST5.Cで、プログラムの先頭に
#include ”stdio.h”
があります。

#include "stdio.h"

main()
{
FILE *fp;
char s[128];
int i;

    fp = fopen("TEST5.C","r");
    while(fgets(s,127,fp) != NULL){
        printf("%s",s);
    }

    fclose(fp);
}

そして下はTEST6.Cで、上のプログラムから先頭の
#include ”stdio.h”
が省かれたものです。

main()
{
FILE *fp;
char s[128];
int i;

    fp = fopen("TEST5.C","r");
    while(fgets(s,127,fp) != NULL){
        printf("%s",s);
    }

    fclose(fp);
}


Y様からいただいたメールによりますと、「TEST5.Cは正しくコンパイル、実行ができますが、TEST6.Cはコンパイルエラーになります」とのことです。

せっかくいただいたサンプルプログラムですので、さっそく独立化システムで試してみました。
最初はTEST5.Cです。



コンパイル〜アセンブル〜リンクまでエラーもなく完了しました。

続いてTEST6.Cをコンパイルしました。



こちらはコンパイルでエラーがいっぱい出てしまいました。
#include ”stdio.h”が無いとエラーになってしまいます。

なぜならば、
「FILE構造体の定義等がSTDIO.Hに書かれているからです(なのでstdio.hが必要)」
というご説明をいただきました。

納得です。

正しくコンパイルできたTEST5を実行してみました。



今回、AZTEC CでもSTDIO.Hは必要ですというご指摘をいただき、その例として分かり易いサンプルプログラムを添付していただくとともに、ホームページでの公開を快諾していただいた東京都のY様、有難うございました。
今後ともご協力をお願いいたします。

CRT/VGAIF+KEYIF+SDCARDIFボードの製作[総合第87回]
2017.6.13upload

前へ
次へ
ホームページトップへ戻る