ページ 11

includeの利用について

Posted: 2021年8月13日(金) 03:48
by h1j1k1
以下のinclude文を悪用(?)した形は許されますか?

コード:

char credit_list[][] = {
#include "credits.csv"
};
のような形でcreditの様な、コンパイル時にさえロードされていればよいが外部に置いておきたいデータをロードする際にincludeを使う。csvファイル自体は"cell", "cell", "cell", "cell"の形でフォーマットしてある。

Re: includeの利用について

Posted: 2021年8月13日(金) 04:19
by みけCAT
h1j1k1 さんが書きました:
2年前
以下のinclude文を悪用(?)した形は許されますか?
コーディングルールなどによるでしょう。
h1j1k1 さんが書きました:
2年前

コード:

char credit_list[][] = {
#include "credits.csv"
};
このコードは、配列の要素の型が不完全なのでコンパイルエラーになるでしょう。

コード:

char credit_list[][5] = {
#include "credits.csv"
};
ならコンパイルは通るでしょう。

Re: includeの利用について

Posted: 2021年8月13日(金) 05:26
by h1j1k1
あ、本当ですね、先頭要素ではないのでこれではコンパイルエラーになってしまいます(汗
でしたらコンパイラにもよりますが以下でも通りますかね?

コード:

char *credit_list[] = {
#include "credits.csv"
};
みけCAT さんが書きました:
2年前
コーディングルールなどによるでしょう。
とありますが、コーディングルールを気にしない場合は可読性・保守性的にはありだと思いますか?

Re: includeの利用について

Posted: 2021年8月13日(金) 11:34
by usao
別にやりたきゃやればいいと思うけども,
そのincudeの位置に credits.csv の内容を普通に書いておくのと比べて{可読性,保守性}あたりが良くなるとも思えないし,

ファイル群として, .cpp とか .h とかと並んで .csv がある状態を考えると,
「とあるcsvファイルを編集したときには,再コンパイルしなければならないんだぞ」
っていうのが,わかりにくいんじゃないかな? っていう欠点が生じるだけに思える.

Re: includeの利用について

Posted: 2021年8月13日(金) 22:34
by 参照魚
制作環境全体で合理性があり、制作者全員でコンセンサスが取れていれば、プログラマー以外がデータを作成できる事、エクセルというメジャーなツールの恩恵に与れる事、など決して悪い事だけでは無いと思います。コンパイラのプリプロセッサはうまく組み合わせて使えば、他の言語やスクリプトの下拵えにも使えます。例えばシナリオスクリプトデータに#includeや#defineを使うことも可能です。