【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

以下のプログラムで質問がございます。
C言語の構造体であるstructの変数であるtanka_kosuuですが
アンダーバー"_"を付けてあります。
(※struct tanka_kosuu kosuu[10];)
 これは、なんでつける必要があるのですか!?
  ご教授ができるお方がおられましたらよろしくお願いいたします。

#include <stdio.h>
struct tanka_kosuu {
int tanka;
int kosuu;
int kingaku;
};
int goukei_kingaku(struct tanka_kosuu kosuu[], int nyuuryoku_kosuu);
int main()
{
struct tanka_kosuu kosuu[10];
struct tanka_kosuu kari_nyuuryoku = {-1, 0, 0};
int nyuuryoku_kosuu = 0;
int i;
while(kari_nyuuryoku.tanka != 0){
scanf("%d %d", &kari_nyuuryoku.tanka,
&kari_nyuuryoku.kosuu);
kosuu[nyuuryoku_kosuu] = kari_nyuuryoku;
nyuuryoku_kosuu++;
}
for ( i = 0; i < nyuuryoku_kosuu-1; i++ ){
kosuu[i].kingaku = kosuu[i].tanka * kosuu[i].kosuu;
printf("%d\t%d\t%d\n", kosuu[i].tanka,
kosuu[i].kosuu, kosuu[i].kingaku);
}
printf("goukei=%d\n",goukei_kingaku(kosuu, nyuuryoku_kosuu-1));
return 0;
}
int goukei_kingaku(struct tanka_kosuu kosuu[], int nyuuryoku_kosuu)
{
int i;
int goukei = 0;
for ( i = 0; i < nyuuryoku_kosuu; i++ ){
goukei += kosuu[i].kingaku;
}
return goukei;
}

質問者からの補足コメント

  • すみません_ _
    [変数であるtanka_kosuuですが]

    [構造体名であるtanka_kosuuですが]
     に変更いたします。

      補足日時:2015/08/26 08:20

このQ&Aに関連する最新のQ&A

A 回答 (5件)

変数や型などの識別名は、プログラム言語仕様により使用できる文字が制限されています。



多くの言語で空白文字は認められないので、複数の英単語からなる名前をつづる場合に
tankakosuu
では読みづらいので、以下の様な命名規則で単語間の区切りを表します。
tanka_kosuu // 下線で区切る "スネークケース"
tanka-kosuu // ハイフンで区切る "チェインケース"
tankaKosuu // 単語頭を大文字にする "キャメルケース"
TankaKosuu // 全ての単語頭を大文字にする "パスカルケース"
TANKA_KOSUU // 全て大文字で下線で区切る "アッパーケース"

C言語の構造体の場合ですが、
慣習として スネークケース または キャメルケース あたりが一般的な様です。

というわけで質問の回答としては、
そのプログラムを作った人の命名規則が、構造体名はスネークケースだった。

ちなみに、
言語仕様的に使えないチェインケースを除いて、どの命名規則でもコンパイルエラーになることはありません。
ただし、コンパイラーとは別に静的コード解析をしている場合は、変な命名だと警告されるかもしれません。


以下参考です。

慣習の由来はたぶんこれ
http://www.amazon.co.jp/dp/4320026926

命名規則が パスカルケース または アッパーケース の例
https://msdn.microsoft.com/ja-jp/library/kbt0048 …

言語によっては、この手の命名規則についての公式ガイドラインがあります
http://www.oracle.com/technetwork/java/codeconve …
https://msdn.microsoft.com/ja-jp/library/ms22904 …
    • good
    • 0
この回答へのお礼

ご回答くださいまして誠にありがとうございました。
勉強になります。
 構造体名の部分なので、特にプログラムの動作には
関係がないことを後で気づきました。
 http://www.amazon.co.jp/dp/4320026926
の本は同サイトで進められまして購入しています^^
 今ざっと見たんですが、343ページ、文字がびっしり書いてありますので
直ぐに見つけることはできませんでしたがが、暇暇探してみます。

お礼日時:2015/08/26 18:17

> tanka_kosuuとtankakosuuが同じ結果になるか?



コンパイラからすると、tanka_kosuu であろうが、tankakosuu であろうが、 A であろうが、foo であろうが、なんでも同じです。
構造体タグ名だからと言うことじゃなくて、変数名でも、関数名でも(mainを除く)、文法的に正しい名前であれば、名前は何でも良いんです。
コンパイルで生成されるコードは同じで、プログラムの動作は同じです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
 そうででした。構造体名なので、特に予約語以外であれば
問題がない部分だと後で気づきました。

お礼日時:2015/08/27 19:41

正確なところは, そのプログラムを作った人に聞いてください.

    • good
    • 0
この回答へのお礼

ご回答くださいましてありがとうございました。
特にプログラムの動作には関係ないみたいです。

お礼日時:2015/08/26 18:18

>tanka_kosuuをtankakosuu に変更しまして


> 検証のためにコンパイルを試みたいのですが!
>「 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"" x86 」 
>のコンパイラーソフトがうまく動いていないので、検証できません。

tanka_kosuuの時はエラーにならなくて
tankakosuuに変更したらエラーになったということでしょうか?
それは、変更したときに、それ以外の箇所も誤って変更している可能性があります。
エラーになったソースをここへそのまま、コピー&ペーストしていただけますでしょうか。
そうすれば、原因が解明できます。(絶対に手打ちなさらないで下さい。手打ちで転記すると、そこで間違ってしまい、余計なにがなんだかわからなくなることが良くあります)
    • good
    • 0
この回答へのお礼

ご回答くださいましてまことにありがとうございました。
Q?:「tankakosuuに変更したらエラーになったということでしょうか?」
 struct tanka_kosuu kosuu[10];
struct tanka_kosuu kari_nyuuryoku = {-1, 0, 0};
 を
struct tankakosuu kosuu[10];
struct tankakosuu kari_nyuuryoku = {-1, 0, 0};
 に変更しまして、
VS2013 x86 Native Tools コマンド プロンプトで
コンパイル後以下のコマンドで試してみました。

c:\msys\1.0\home\Administrator>CL example10.c
Microsoft(R) C/C++ Optimizing Compiler Version 18.00.30723 for x86
Copyright (C) Microsoft Corporation. All rights reserved.

example10.c
Microsoft (R) Incremental Linker Version 12.00.30723.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:example10.exe
example10.obj

c:\msys\1.0\home\Administrator>example10
100 3
0 0
以上ですが!
最後の
100 3
0 0
参考書の通り入力しました。
参考書の意図するところがよく理解していないのですが!?
たぶん動いていると思われます。
「 >のコンパイラーソフトがうまく動いていないので、検証できません。」
と書き込みましてが、すみません_ _たぶん私しのやり方が間違っていたのかと思います。
 まだ基礎的なことを学んでいる過程ですので、試行錯誤状態で
で悪しからずでございます^^

お礼日時:2015/08/26 19:28

tanka_kosuu のほうが、tankakosuu より見やすい、誤読しにくいと言うことです。


日本語をローマ字で書くときは、分かち書きをするのが普通ですし、英語も、単語の区切りは空白を空けます。

korehanandetsukeruhitsuyougaarunodesuka だと、読みにくいですよね。
kore_ha_nande_tsukeru_hitsuyou_ga_aruno_desuka のほうがずっと読みやすいし、区切りを間違えて誤読することが無い。
    • good
    • 0
この回答へのお礼

ご回答くださいましてありがとうございました。
 ”読みにくいですよね。”の 
ご回答をもとに、すみません この場を借りて
  今後のユーザーさんのために
tanka_kosuuをtankakosuu に変更しまして
 検証のためにコンパイルを試みたいのですが!
「 %comspec% /k ""C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat"" x86 」 
のコンパイラーソフトがうまく動いていないので、検証できません。
 つきまして
 tanka_kosuuとtankakosuuが同じ結果になるか?
 第三者さんのお方は検証されたらいかがでしょうか。

お礼日時:2015/08/26 09:07

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aと関連する良く見られている質問

Q半角のアンダーバーの入力の方法を教えて下さい。

半角のアンダーバーの入力の方法を教えて下さい。
アンダーバーの呼び方も教えて下さい。
(2695_1042)

Aベストアンサー

アンダースコアと言います。

半角モードにして、右のShiftキーの隣のキーをShiftを押しながらです。

Qアンダーバーの出し方

単純な質問ですみません。

HPのアドレスなんかでアンダーバーの入力をしないといけないんですが、キーボードのどれを押せばアンダーバーは出てくるのでしょうか?

調べてもよく分からないのです、よろしくお願いします。

Aベストアンサー

SHIFTを押しながら、キーボード右 「 ろ 」 キーを押して下さい。

Qアンダーバーの入力方法

 メールアドレス等に稀に見られるアンダーバーの入力方法を教えて下さい。

Aベストアンサー

Shiltを押したまま「ろ-」のキーを押します。漢字の状態で「_」英字では「_」となります。

Q記号で上にバーの入力

メールアドレスで、アンダーバー(_)でもハイフン(-)でもない、上にバーになってるやつを出すには、どうすればよいのでしょう?ちなみに、なんていう名前の記号でしょうか?

Aベストアンサー

メールアドレスの時は半角で(平仮名の「ほ」キー)「ハイフン」を使用するんじゃないんですか?。

(abc-def)←半角でハイフン使用。
(abcーdef)←全角でハイフン使用。
(abc-def)←全角でマイナス記号使用。
(abd_def)←半角でアンダーバー使用。

QMacのアンダーバーについて。

初心者です。アンダーバーのやり方がわかりません。
大至急知りたいので、どなたか教えて下さい。
宜しくお願いいたします。

Aベストアンサー

キーボード入力で_が判らないという事?
それならキーボード右下の、
/とShiftキーの間のバックスラッシュ(日本語キーボードでは表記はあるけど入力は¥になる)と「ろ」が書いてあるキーをShiftキーを押しながら押せば入力できるけど。

Qアンダーバーの入力について

アンダーバーの入力は、Shift + ろ だと思うのですが、出てきません。この「ろ」だけシフトを押しても押さなくても出てこないのですが。故障でしょうか?尚、記号と打って記号の中からも探してみるのですが、アンダーバーが見当たらないのですが。教えて下さい。よろしくお願いします。

Aベストアンサー

英語キーボードでの_はShift+ハイフンです。
0の右のキーをShiftとともに押してください。

OSは何でしょうか?
Windows系一般として、コントロールパネル>キーボードで調べてみてください。
英語101キーボードになっていますから、日本語キーボードに変更します。
(管理者権限で)
これで、直ると思います。

QiPhoneでアンダーバーを打つには?

iPhpneで、アンダーバーを打ちたいのですが、どのキーを打てば
出るでしょうか?

Aベストアンサー

(123)を打ち、(#+=)を打つ。
そして上から2段目の一番左。

Qメールアドレスの下線の入力方法

メールアドレスの下線の入力方法をお教え下さい。
ノートパソコンです。「¥」と同じキーの下右部分に「-」があります。たぶんこのキーと思われますが、入力方法がわかりません。
よろしくお願いします。

Aベストアンサー

もしかしてアンダーバー「_」でしょうか?
入力方法は、シフトキーを押しながら右下の「ろ」のキーを押せば入力できます。

Qメールアドレス 上バーの入力の仕方

 メールアドレスの上バーはどうやって入力するのでしょうか。上といれて変換すると ̄になるのですが、アドレスに入れると全角です。どうやったらいいのでしょうか 教えてください。

Aベストアンサー

No.2訂正

よく見たら 上バー でしたね。
だとすると ハイフン でしょうか?
半角で ハイフン より上に位置する文字はありませんので。


人気Q&Aランキング

価格.com 格安SIM 料金比較