- ベストアンサー
Visual StdioでC言語のプログラミングを勉強中|質問あり
- Visual StdioでC言語のプログラミングを勉強中ですが、質問があります。
- main関数からfunc関数への遷移方法が分からないです。
- ご教授のほど、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> struct A D = { > .a = func, > }; こういうフィールドを指定した初期化って、C99で追加されたもので、古い規格に準じたCだと対応していません。 すくなくともVisual Studio 2008以前では対応してないようです。 2010では一部対応した、という記述も見掛けましたが、確認はとれてません。 それ以前の規格だったら、 struct A D={ func } ; とフィールド指定なしに書く(ただし、間を省略することができないので、初期化の必要のないフィールドの分も必要となるケースがある)か、 strcut A D ; D.a=func ; と、宣言と初期化を分けるか、です。 main.cを別ファイルに作るなら ・Dをmain.cから使えるようにするため、 TestHeader.h に extern struct A D; と宣言を入れておく。 ・Dの初期化は 初期化子を使うか、初期化関数を用意する。 関数を用意する場合は、同じくTestHeaderにプロトタイプ宣言を書いておく。 ・共通で使えるように、main.cに#include "TestHeader.h"を記述する ところで、 typedefでstruct AをA型として使えるようにしていますが、それは使わないのですか?
その他の回答 (2)
- magicalpass
- ベストアンサー率58% (378/648)
> struct A D = { > .a = func, > }; こういう初期化の仕方は無い。 struct A D = {func}; main関数は int main(int argc, char *argv[]) { struct B stB; struct C *pstC; char buf[1]; int ret; ret = D.a(&stB, buf, &pstC); return(ret); } という感じ。
お礼
ご回答ありがとうございます。 参考にさせて頂きます。
- joqr
- ベストアンサー率18% (742/4026)
>main関数の作成方法が分かりません プロジェクトを作成すれば,main関数は勝手に作られます
補足
ご回答ありがとうございます。 プロジェクトは作ってmain関数は勝手に作られたのですが、func関数に遷移させるにはどのような処理を書けばいいのか分からなかったため、ご質問させて頂きました。
お礼
ご回答ありがとうございます。 環境は、Visual Studio 2003でしたので初期化と宣言を分けました。 >ところで、 typedefでstruct AをA型として使えるようにしていますが、それは使わないのですか? ここには一部しか記載しませんでしたが、他の箇所で使っております。 コメントありがとうございます。大変参考になりました。