【ANSI-C】 C言語なら俺に聞け! Part 129
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/08/27(日) 15:43:44まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。
質問する前には最低限検索を。
エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
Cプログラマ必読 ・プログラミング言語C(通称 K&R)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244
他の過去ログはここに
http://nssearch.hp.infoseek.co.jp/clang/
前スレ
【ANSI-C】 C言語なら俺に聞け! Part 128
http://pc8.2ch.net/test/read.cgi/tech/1151282084/
GUIなどの標準Cではできない事の質問,ソース丸投げ、宿題、書籍 は
専門の別スレッド↓があるのでそこへさようなら。
【初心者歓迎】C/C++室 Ver.30【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1156145524/
C/C++の宿題を片付けます 73代目
http://pc8.2ch.net/test/read.cgi/tech/1155355501/
新・推薦図書/必読図書のためのスレッド 1
http://pc8.2ch.net/test/read.cgi/prog/1146889623/
0175デフォルトの名無しさん
2006/09/02(土) 18:09:01これなんかどうだ。結構キテるぞ。
http://www.planetpdf.com/developer/article.asp?ContentID=6635
0176デフォルトの名無しさん
2006/09/02(土) 18:21:52C++ 使えないの?
0177デフォルトの名無しさん
2006/09/02(土) 18:35:01Embedded C++使え。
0178デフォルトの名無しさん
2006/09/02(土) 18:37:51ファームウェアの内容にもよるが、
組み込み系はなかなか新しいことがしづらい
新規開発ならまだしも、正常に動作している=修正しないスタンスだからな
それともうちだけか?
だから俺の職場ではCしか使っていない。174はどうか知らないけど
0179デフォルトの名無しさん
2006/09/02(土) 18:44:33☆☆
☆☆☆
☆☆☆☆
☆☆☆☆☆
☆☆☆☆☆☆
という風に表示したいんだが・・・
0180デフォルトの名無しさん
2006/09/02(土) 18:46:04main()
{
int i,j,n;
printf("星の数を入力");
scanf("%d",&n);
printf("パターン1 \n");
for(i=1; i<=n; i++){
for(j=1; j<=i; j++){
printf("☆");
}
printf()
}
printf("\n");
}
のprintf()の中になんて書けばいい?
0181デフォルトの名無しさん
2006/09/02(土) 19:17:16"\n"
後スレ違い。
0182デフォルトの名無しさん
2006/09/02(土) 21:33:48レス遅れました。
厳しいコメントありがとうございました。
0183デフォルトの名無しさん
2006/09/03(日) 01:38:44安定性を免罪符に、とっちゃん達が勉強をサボってるだけってのが実感かなあ。
信頼性の面において同列に語っちゃいかんのだろうが、求められるところは似てる
ゲーム開発なんかだと、GBA時代で既にC++を使ってる奴はいくらもいたし、
DSなんかでもC++に移行してる奴は少なくない。
もちろんRTTIや例外なんかは自主的に封印される傾向だし、動的メモリ確保も
避けられる限りは避けるわけだが、C++イコール性能が落ちるってわけじゃなし、
未だに移行を渋ってるのは、やむにやまれぬ事情による本当に一部の例外を除けば
マジで宗教上の理由以外考えられん希ガス。
0184デフォルトの名無しさん
2006/09/03(日) 01:42:300185デフォルトの名無しさん
2006/09/03(日) 01:44:270186デフォルトの名無しさん
2006/09/03(日) 01:45:26つーかC++教が、その魅力や必然性の布教活動をできてないだけだな
つーかGBAやDSは組み込み系とするのは、ちょっと組み込み系を
拡大解釈しすぎなんじゃねえかとは思う
0187デフォルトの名無しさん
2006/09/03(日) 02:33:550188デフォルトの名無しさん
2006/09/03(日) 03:13:41>拡大解釈しすぎなんじゃねえかとは思う
自分で言ってて俺もそう思った。
つーより本当の意味での組み込み系ってどうもピンとこないんだわ。
すまん。
>>187
最低でもテンプレート、名前空間、仮想関数、クラス、継承、明示的なinline関数、
タイプセーフは普通に使えるんだから、保守性の面では生Cとは比較にならんがな。
例外が欲しい人の気持ちはわかるが、組み込み(一歩手前)の環境だと
まあなんつーか、無くても全然困らん。
0189デフォルトの名無しさん
2006/09/03(日) 03:47:26> でんでん
こないだマ板でみたばかりだが、流行ってるのか?
0190デフォルトの名無しさん
2006/09/03(日) 03:53:390191デフォルトの名無しさん
2006/09/03(日) 03:56:070192デフォルトの名無しさん
2006/09/03(日) 04:03:01倍満
0193デフォルトの名無しさん
2006/09/03(日) 04:08:18かたつむり
0194デフォルトの名無しさん
2006/09/03(日) 04:19:40名前やクラス関係
インラインやタイプセーフ
これらと(可読・管理など)保守の関係がとても広く感じます
が、比較にならんほどなのでしょうか。
名前空間とクラスはC++でなくとも、面倒がらなければgtkのような
とても長い関数名も一つのアプローチと思ってます。
ところで、
「でんでん」はなんか可愛い感じで伝染してるじゃないですか。
0195デフォルトの名無しさん
2006/09/03(日) 04:21:13ANSI-Cは6文字までしか識別子の長さは保証されとらんよ。
0196デフォルトの名無しさん
2006/09/03(日) 04:27:520197デフォルトの名無しさん
2006/09/03(日) 04:34:360198デフォルトの名無しさん
2006/09/03(日) 04:36:21いや、むしろそれが実感でわからないなら感覚腐ってると思うんだが、どうよ。
煽りでも何でもなしに。
ていうか何のためにC++が生まれたと思ってんだ。
確かにC++の機能の大半はCでもやってやれないわけじゃないんだが、
同じことをやって、かつそれを延々と保守していくためのコストは
マジ比較にならん。
俺が絶対にミスせず、一度にさばける情報量にも上限がない様な生き物ならCのままでもいいが、
inlineが無いばかりにだだ並ぶマクロ、
namespaceが使えないばかりに俺様会社ルールのプリフィックスサフィックスまみれになる関数名、
テンプレートが無いおかげでちょっと相手にする型が違うだけなのに大量に用意されてしまう関数、
仮想関数相当をさばくために用意されるswitch〜caseの嵐、ないしは著しく可読性を損なう関数テーブルの山、
タイプセーフがないせいでもって素通りしてしまうヒューマンエラー、
馬鹿の俺には悪夢そのものじゃねーか。
自分ひとりで小さく転がすなら何だっていいけど、大人数でそれなりのコード量回すのに
こんなのいちいち付き合ってらんない。
つーか有り得ん。
有り得んわ。
0199デフォルトの名無しさん
2006/09/03(日) 07:06:080200デフォルトの名無しさん
2006/09/03(日) 11:49:250201デフォルトの名無しさん
2006/09/03(日) 13:08:45ただ、Cでもきちんと組んだものは >>198 の言うほど差があるわけじゃない。
メンテとかでCで書かざる得ない時に C++ ならもっと楽できるのに… って
思うことがたまにある程度。
0202デフォルトの名無しさん
2006/09/03(日) 13:11:22メンテナンスの頻度によって感じ方が違うんだろう。
0203デフォルトの名無しさん
2006/09/03(日) 16:35:25理解しやすい組み方ってなんですかね?
やはり、グローバル変数をダイレクトに使ってでも、単純に、実直に組み立てるほうが
保守や移植はしづらいが、昔の人にはわかりやすいのか?
ちなみに移植といっても、結局同じようなシステムにしか移植できないんだよね。
0204デフォルトの名無しさん
2006/09/03(日) 17:09:17どこまでのロートルをターゲットとするかにも拠るけど、プロトタイプ以前の人を対象とするのだけはやめた方がいい。
関数ポインタでさえ、「難しいプログラム書きますね」って言われちゃうんだから。
#逆にその人が書いたものを見たが、まさかポインタ変数をフラグに使うとは夢想だにしなかったよ。
0205デフォルトの名無しさん
2006/09/03(日) 17:10:57ポインタのヌルチェックでフラグ的な働きをさせることがあるけど、まさかそのことじゃないよね?
0206デフォルトの名無しさん
2006/09/03(日) 17:37:49int longlongfunction(foo, bar, baz)
double baz, bar; // オールドスタイルだし、fooの型は省略するしbarとbazの順番も気にしない
{
int * hoge; // 兎に角頭で宣言する
/* この間数十行 */
hoge = malloc(...);
/* この関数十行 */
free(hoge);
hoge = 0; // NULLじゃないし
/*この間数行 */
if (...) {
hoge = (int *) 1; // 無理矢理フラグ的に使う
}
/* この間十数行 */
if (hoge == 1) { // 比較は0とするべきなんだけど...
return -hoge; // エラーは-1という仕様らしい。
}
/* この間数行 */
} // あれ? 最後のreturnがないぞ?
こんなソースのメンテナンスが回ってきた日にゃぁ、もうね。
#正直、新人に任せるわけにも行かないから結局漏れが見る羽目になるわけだが。
0207デフォルトの名無しさん
2006/09/03(日) 18:16:34はやさ?
0208デフォルトの名無しさん
2006/09/03(日) 18:20:030209デフォルトの名無しさん
2006/09/03(日) 18:24:07これは省スタックなコードですね。
>>207
移行しない、ではなく、
C++で面倒な事になりそうな環境ではCを使ってるだけ。
使える環境なら、C++に限らず何でも使う。
0210デフォルトの名無しさん
2006/09/03(日) 19:19:40単にお前の会社に DQN がいただけということだろ。
ロートルかどうかは関係ないと思うぞ。
0211デフォルトの名無しさん
2006/09/03(日) 20:10:54それがあなた、某大手と取り引きのある一端の会社の課長さんでございますよ。
#その会社のせいで我が社が噛めないってのにw
0212デフォルトの名無しさん
2006/09/03(日) 20:23:36組み込み系とかではC++のコンパイラなんてなかったりする。
あっても致命的に遅かったり。
Cのコンパイラもなかったりする。
>>211
>>210と同じくロートルかは問題じゃないんじゃ
じゃあUNIX初期のコードはひどかったんだw
0213デフォルトの名無しさん
2006/09/03(日) 21:07:01会社の規模や役職に関係なく DQN はいるだろ。
>>212
今時Cの開発環境がないチップなんかあるのか?
型名 plz.
0214デフォルトの名無しさん
2006/09/03(日) 21:47:100215デフォルトの名無しさん
2006/09/03(日) 22:07:25多分 10ns ぐらいじゃね としか答えられないな。
0216デフォルトの名無しさん
2006/09/03(日) 23:22:20今のCやJavaなども何年もたつと、そういう感じがしてしまうのかと
思うとなんだか気持ちが切なくなります。
0217デフォルトの名無しさん
2006/09/04(月) 01:58:54gccとか使えんの?
0218デフォルトの名無しさん
2006/09/04(月) 11:27:13>今時Cの開発環境がないチップなんかあるのか?
「チップ」が何を指しているのか解らんのだが。
(因みにプロセッサ“だけ”の問題ではない)
0219デフォルトの名無しさん
2006/09/04(月) 18:50:010220デフォルトの名無しさん
2006/09/04(月) 18:58:29memcmp
memset
memmove (memcpy)
を使ってもC標準ライブラリーにある関数で作れないのってあるの?
メモリー関係はこれだけ使えればOKってこと?
locale.h, time.h math.h とかはメモリ操作と性質が違うから除外ね。
0221デフォルトの名無しさん
2006/09/04(月) 19:02:54最悪手動的にループ書けば何でもできる。
0222デフォルトの名無しさん
2006/09/04(月) 20:41:04まずプロセサだけでも書けばいいじゃん。
その他に理由があるならそれも書けばいいだけだと思うけど。
コミュニケーション能力がないのか?
>>219
C++ はきついけど、C だったら大丈夫と思うけどね。
0223デフォルトの名無しさん
2006/09/04(月) 21:11:200224デフォルトの名無しさん
2006/09/04(月) 22:35:11C++ だと、どうなるって?
0225デフォルトの名無しさん
2006/09/04(月) 23:07:39>>EEPROM
もしかして EERPOM のことか?
0226デフォルトの名無しさん
2006/09/04(月) 23:47:57EEPROMはElectricErasableProgramableReadOnlyMemoryかな。
0227デフォルトの名無しさん
2006/09/05(火) 00:11:440228デフォルトの名無しさん
2006/09/05(火) 00:18:58・・・どうやら転職と関係あるらしい。
0229デフォルトの名無しさん
2006/09/05(火) 01:10:250230デフォルトの名無しさん
2006/09/05(火) 04:38:29これらすべてがEEPROMのtypoな件について
0231デフォルトの名無しさん
2006/09/05(火) 04:52:350232デフォルトの名無しさん
2006/09/05(火) 20:16:36int tmp[100][100];
という変数があり、それを全て0で初期化したいのですが
int tmp[100][100] = {0};
だと、ワーニングがでてしまいます。
これは間違っているのでしょうか?
023384
2006/09/05(火) 20:18:420234デフォルトの名無しさん
2006/09/05(火) 20:19:350235デフォルトの名無しさん
2006/09/05(火) 20:20:50警告なんだから、お勧めではないというだけで、間違ってはいない。
たぶんこれなら警告が出なくなると思う。
int tmp[100][100] = {{0}};
0236デフォルトの名無しさん
2006/09/05(火) 20:26:59望洋信者乙
0237デフォルトの名無しさん
2006/09/05(火) 20:29:00ウォー(戦争)をワーなんて言ったらマヌケだろ?
0238デフォルトの名無しさん
2006/09/05(火) 20:30:330239デフォルトの名無しさん
2006/09/05(火) 20:31:44そのつづりを指摘してる奴はあほとしか
0240デフォルトの名無しさん
2006/09/05(火) 20:46:12ワーしようぜ!
0241デフォルトの名無しさん
2006/09/05(火) 20:49:29ワーニングについてのコラムがわざわざ設けられている。
「ワーニングという表記を見ると本当にぞっとします」
みたいなことが書かれていてキモイ。
そのスペースでもっと役に立つこと書けよ。
0242デフォルトの名無しさん
2006/09/05(火) 20:50:58それ以降「警告」っていう様にしてます
0243デフォルトの名無しさん
2006/09/05(火) 20:53:380244232
2006/09/05(火) 20:54:36{{0}}; で、警告が出陋ことがなくなりました。
すいませんが、もう一つ質問させていただきます。
int tmp[100][100];
という変数を他の関数に渡したいのですが、
int test(int **tmp){return 0;}
int main(void){int tmp[100][100]; test( tmp); return 0;}
とすると、incompatible pointer typeになってしまいます。
int test(int tmp[100][100])にすると、でないのですが
この100というところは、数字を書かないとだめなのでしょうか?
defineで100を何かにしておけばいいのですが、他の方法があるのなら教えて欲しいです。
0245デフォルトの名無しさん
2006/09/05(火) 20:55:34なんか気持ち悪いオーラが出るからね。
教祖も信者も。
みんなで「ワー、ワー」とか叫んでそう。
もしくは、合言葉だったりして。
0246デフォルトの名無しさん
2006/09/05(火) 20:56:580247デフォルトの名無しさん
2006/09/05(火) 20:58:47もしかして、あなた、噂の信者?
そこに生えていた「タンポポ」あげるから、もうどこかにいってくれる?
0248デフォルトの名無しさん
2006/09/05(火) 21:02:48ポインタを分かってないようだね。柴田望洋でも読んだら?
0249デフォルトの名無しさん
2006/09/05(火) 21:03:50一番外側は省略できるので、int test(int tmp[][100])とすることはできる。
http://www.kouno.jp/home/c_faq/c6.html#18
0250デフォルトの名無しさん
2006/09/05(火) 21:04:53まさにスレと自分の一体化だな
たんなるスレだろに
0251デフォルトの名無しさん
2006/09/05(火) 21:24:030252デフォルトの名無しさん
2006/09/05(火) 21:29:050253デフォルトの名無しさん
2006/09/05(火) 21:33:250254デフォルトの名無しさん
2006/09/05(火) 21:42:190255デフォルトの名無しさん
2006/09/05(火) 21:57:55typedef と struct の使い方をよくわからないまま使っています。
だれか、解説してけろ。gccでコンパイルしてエラーしたら、g++で
コンパイルするとエラー無しとかあるでしょ?たしか。
そんないい加減な知識しかないんです。
0256232
2006/09/05(火) 22:02:280257デフォルトの名無しさん
2006/09/05(火) 22:05:50元々意味が違う。使い分けって何だよ?
0259デフォルトの名無しさん
2006/09/05(火) 22:10:22使い分けってなんですか?いやマジで
0260デフォルトの名無しさん
2006/09/05(火) 22:10:34こういうのが、スルー?
0261デフォルトの名無しさん
2006/09/05(火) 22:13:28いやもう話に出さなくていいよw
俺の文章力不足だった
0262デフォルトの名無しさん
2006/09/05(火) 22:17:21Javaだったら
throw new 柴田望洋で例外発生()
でスローなんだけど・・
0263デフォルトの名無しさん
2006/09/05(火) 22:20:35structは構造体といって複数の変数をまとめた1つの型を作るものです。
typedefは既存の型を別の型として定義しなおすものです。
0264デフォルトの名無しさん
2006/09/05(火) 22:22:09そんなに柴田望洋さんがお好きなら
そちらの掲示板でお聞きになったらいがかかしら?
0265デフォルトの名無しさん
2006/09/05(火) 22:26:36微妙に乗り遅れたな
リアルで空気嫁とか言われないか?
0266デフォルトの名無しさん
2006/09/05(火) 22:26:44その使い方がよく分からないんです。
みなさんどんな風に書かれていますか?
0267デフォルトの名無しさん
2006/09/05(火) 22:33:050269デフォルトの名無しさん
2006/09/05(火) 22:36:030270デフォルトの名無しさん
2006/09/05(火) 22:38:06typedef struct HOGE {
}hoge;
なんていうのも有りでしょ??
0271デフォルトの名無しさん
2006/09/05(火) 22:39:47行動を監視してましたけど、あなたは結構はぐれ者なんですね。ばれてますよ。
0272デフォルトの名無しさん
2006/09/05(火) 22:50:40行動を監視してましたけど、あなたは結構ぬるぽ者なんですね。ばれてますよ。
0273デフォルトの名無しさん
2006/09/05(火) 22:57:43( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/ >>272
(_フ彡
0274デフォルトの名無しさん
2006/09/05(火) 23:01:18エスパー
よくわかったな
>>269
はCやC++の本、何も持ってない?
googleは使ったことはない?
■ このスレッドは過去ログ倉庫に格納されています