ページ 11

定義

Posted: 2009年2月01日(日) 15:56
by notta
定義ってどうやって作るんですか、教えてください。

Re:定義

Posted: 2009年2月01日(日) 16:01
by Dixq (管理人)
定義は
#define
でかけますが、そういう定義でしょうか?
まず、何が目的で、何を必要としているか、規約にかいてあるように詳しく教えて下さい。

また、http://www.google.co.jp/search?hl=ja&q= ... =&aq=f&oq=が、
これでは解決しませんか?

質問を規約を守って丁寧にすることで、良い回答が集まると思います。

Re:定義

Posted: 2009年2月02日(月) 10:47
by TOMONORI
宣言と定義の定義だとすると、関数を例として、

// 宣言
int func(int num);
// 定義
int func(int num)
{
// 動作の記述
return num * num;
}
// 任意の場所で利用する
int main()
{
int i;
int ii;
i = 2;
ii = func(i); // 利用

return 0;
}

Re:定義

Posted: 2009年2月02日(月) 12:28
by たかぎ
C言語における「定義」は、JIS X3010:2003では、6.7 宣言によると...

意味規則 宣言は, 幾つかの識別子の解釈及び属性を指定する。識別子の定義(definition)とは, 宣言のうち次のものをいう。
- オブジェクトに対しては, そのオブジェクトの記憶域を確保する宣言
- 関数に対しては, 関数本体を含む宣言
- 列挙定数又は型定義名に対しては, その識別子の(唯一の)宣言

となっています。

一方、#define前処理指令によるものは「マクロ定義」です。
また、typedef指定子によるものは「型定義」です。
さらに、
struct A;
union B;
enum C;
が構造体・共用体・列挙体の宣言であるのに対して、
struct A { int a; };
union B { int b; };
enum C { c };
は構造体・共用体・列挙体の定義になります。

最後に、ややこしい概念として「仮定義」というものがあります。
これについては自分で調べてみてください。

Re:定義

Posted: 2009年2月05日(木) 23:50
by notta
ありがとうございます。  頑張っていきたいと思います。