• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Visual Stdioで、C言語のプログラミングを勉強してるのですが)

Visual StdioでC言語のプログラミングを勉強中|質問あり

このQ&Aのポイント
  • Visual StdioでC言語のプログラミングを勉強中ですが、質問があります。
  • main関数からfunc関数への遷移方法が分からないです。
  • ご教授のほど、よろしくお願いします。

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

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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型として使えるようにしていますが、それは使わないのですか?

forza1204
質問者

お礼

ご回答ありがとうございます。 環境は、Visual Studio 2003でしたので初期化と宣言を分けました。 >ところで、 typedefでstruct AをA型として使えるようにしていますが、それは使わないのですか? ここには一部しか記載しませんでしたが、他の箇所で使っております。 コメントありがとうございます。大変参考になりました。

その他の回答 (2)

回答No.2

> 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); } という感じ。

forza1204
質問者

お礼

ご回答ありがとうございます。 参考にさせて頂きます。

  • joqr
  • ベストアンサー率18% (742/4026)
回答No.1

>main関数の作成方法が分かりません プロジェクトを作成すれば,main関数は勝手に作られます

forza1204
質問者

補足

ご回答ありがとうございます。 プロジェクトは作ってmain関数は勝手に作られたのですが、func関数に遷移させるにはどのような処理を書けばいいのか分からなかったため、ご質問させて頂きました。

関連するQ&A

専門家に質問してみよう