1 名前:デフォルトの名無しさん [2011/12/23(金) 22:51:14.19 ] C言語の*入門者*向け解説スレッドです。 ★前スレ C言語なら俺に聞け(入門編)Part 93 toro.2ch.net/test/read.cgi/tech/1322866566/ ★過去スレ makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000 ★教えて欲しいのではなく宿題を丸投げしたいだけなら ↓宿題スレ↓へ行ってください。 C/C++の宿題片付けます 154代目 hibari.2ch.net/test/read.cgi/tech/1322562648/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
231 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 06:00:14.70 ] それはそうと、pthreadを使ったスレッドプールの手頃なサンプルないかな。 pthread_cond_wait()が意外に使い難くて参った。
232 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 06:48:49.97 ] 引きこもりが熱く語る「僕の考えるパソコンを使った事務仕事」とか笑えるわ
233 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 07:17:16.15 ] >>232 >230のことを言っているなら、それを書いたのは会社員の私だ。
234 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 09:13:32.51 ] >>231 www.google.co.jp/search?q=pthread_cond_wait+%E4%BD%BF%E3%81%84%E6%96%B9
235 名前:231 mailto:sage [2011/12/27(火) 09:34:21.72 ] >>234 それで見つかるところは大抵最低限の使い方だけなんだよね。 この板のマルチスレッドのスレでも同じように梃子摺っている質問は幾つか見つかるのに、 具体的な回答が見つからないし。
236 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 13:10:19.29 ] 具体的に何をしようとしてどうなったか書いてないと答えようがなくね?
237 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 15:56:47.40 ] >>215 clock()のほうが良いと思いmath
238 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 15:58:54.71 ] clock は精度が秒の環境もあるぞ。
239 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 16:53:33.36 ] WindowsならtimeGetTime()かQueryPerformanceCounter()を使うしな time()はかなり機種依存的性格を持っている
240 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 16:57:23.48 ] DOSの時は走査線待ち。
241 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:31:40.69 ] ヒープソートを書いたのですが codepad.org/gQnTXtfr 最後の20 10が整頓されません どうすれば昇順になるのか教えてください
242 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 18:48:08.47 ] 自己解決しました for(i=N; i>2; i--)あるべきでした
243 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 19:11:58.83 ] C言語でこのスレに書き込めるプログラム教えてください
244 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 20:34:02.21 ] 平松邦夫/民主党 大阪市役所・自治労・大阪市労働組合・日教組・大阪市教育委員会・自民党・共産党・社民党・関西電力・住友グループ ・毎日放送・毎日新聞・関西経済連合・日本原子力発電株式会社 ・ 週刊文春・週刊新潮・NHK・朝日新聞・読売新聞 ・部落解放同盟・朝鮮総連・在日本大韓民国民団・日本遊技関連事業協会・全日本遊技事業協同組合連合会・日本弁護士連合会・生活保護受給者・反日左翼・9条の会・革マル派・中核派 VS 橋下徹/維新の会 大阪市民・みんなの党・国民新党・亀井静香・石原慎太郎・東国原英夫 様子見:公明
245 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 00:50:51.04 ] >243 ttp://www23.atwiki.jp/psp_2ch/ 適当に選べ。
246 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 10:17:50.61 ] Windowsでコンソールプログラムで右下にバルーンを表示させたいのですが それだけのシンプルなほどシンプルな本当に登竜門なサンプルで公開してるページありませんか?
247 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:01:39.93 ] つくってみよう−タスクトレイアプリケーションの作成 ttp://www.alpha-net.ne.jp/users2/uk413/vc/VCT_TaskTray.html
248 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:06:02.01 ] ダブルポインターのコピーについての質問です。 二次元配列の文字列をコピーしたいのですが、コピー元の二次元配列は ヒープメモリの確保が必要になりますが、コピー先のメモリも動的に確保しようと コメントアウトの部分を外すと、メモリエラー(ヒープの破壊)が起こりますが、 コメントアウトした状態の実装で、メモリの使い方は間違っていないでしょうか? #include <stdio.h> #include <stdlib.h> char **getString(); char **strSrc; int main() { char **strDst; // コピーされる側はヒープメモリの確保は必要ないのか? //strDst = (char **)malloc( sizeof(char * ) * 2 ) ; strDst = getString(); printf("%s\n", strDst[0]); printf("%s\n", strDst[1]); free( strSrc ); //確保していないので、解放は当然不要なわけであるが・・・・ //free( strDst); return 0; } char **getString() { strSrc = (char **)malloc( sizeof(char * ) * 2 ); strSrc[0] = "ABCD"; strSrc[1] = "1234"; return strSrc; }
249 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:08:45.08 ] >>246 NOTIFYICONDATA NIF_INFO でぐぐれ
250 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:15:53.20 ] 再帰って関数内が終わったら自動でreturnされるの? codepad.org/dAqEkNzj このコードみたんだけど HeapSortの中に--reetcountってあるけど 関数の最後でreturnが自動で呼ばれてるんですか?
251 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:19:28.01 ] そう。
252 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:23:26.60 ] この場合戻り値がvoidなんですが returnっていうより 最初の if (left >= right) { --reentcount; return; } で条件に引っかからず一番したの処理まできたら 自動で前の処理の再帰に戻すってこと? returnって書けば戻るんだけど 終了には--reetcount(カウント数)だけだよね 自動で前の再帰に戻るの?
253 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:26:14.43 ] voidって値を返す必要がないのに どうやって前の再帰に戻ってるんだろう void HeapSortだけど voidの場合でも関数終了時に再帰が残ってる場合は前の再帰に戻してくれるの?
254 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:27:37.30 ] いや、あたい返しても返さなくても仕組みは一緒だろ…
255 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:27:40.69 ] >>248 ポインタの基礎ができてない悪寒。 >248の場合、strDstにメモリ確保しても、それをgetString()の戻り値で上書きしてしまっている。 なので、free(strSrc)で解放したメモリ空間をfree(strDst)で更に解放しようとして異常終了している。 そもそも、何がしたいのか判らんが勉強中はグローバル変数は使うな。
256 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:28:33.27 ] >248 strSrcとstrDstが同じポインタ値になってる。 free( strSrc ); //確保していないので、解放は当然不要なわけであるが・・・・ free( strDst); 同じメモリを2回開放しようとしてる。 >strDst = (char **)malloc( sizeof(char * ) * 2 ) ; >strDst = getString(); やるなら strDst = (char **)malloc( sizeof(char * ) * 2 ) ; memcpy(strDst,getString(),sizoef(char * ) * 2 ) ; だろう。
257 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:30:12.51 ] >>253 例えばこういうコードがある。 -- void subFunc() { puts("subFunc()"); } void someFunc() { puts("before sub"); subFunc(); puts("after sub"); } -- このとき、どう出力されるかは判るかい?
258 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:34:08.14 ] before sub subFunc() after sub ですか? なんかひねって before sub 1 after sub だったりしそうですがわかりません
259 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:38:47.32 ] #include <stdio.h> int main(void) { int i=1; printf("%c\n",a()); return 0; } int a(){ } これだと1って返されますね void a()に変更するとコンパイルエラー だけどcodepadの再帰はVoid型なのに関数ブロックの最後になったら前の再帰が返されてる 再帰はVoid型とか関係なくコードブロックの終了に返されるってこと?
260 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:43:06.17 ] >>258 値を返すとかなんだとかを脇において、処理がどう推移するかを考えろ。 1を出力しているところはどこにもないぞ。
261 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 12:53:17.58 ] >257の例で、処理がどう流れているかを処理される順番で表現してみた。 # main()はないが、someFunc()を呼んでいると仮定。 -- void subFunc() // 5 { // 6 puts("subFunc()"); // 7 } // 8 void someFunc() // 1 { // 2 puts("before sub"); // 3 subFunc(); // 4...9 puts("after sub"); // 10 } // 11 -- subFunc()の途中にreturn文があれば、こうなる。 -- void subFunc() // 5 { // 6 return; // 7 puts("subFunc()"); // この文は実行されない。警告レベルを上げると警告されるはず。 } // 8 void someFunc() // 1 { // 2 puts("before sub"); // 3 subFunc(); // 4...9 puts("after sub"); // 10 } // 11 -- これで判るかねぇ。
262 名前:155 mailto:sage [2011/12/28(水) 15:12:32.15 ] >>252 意図は MergeSort() の入り口でカウントアップ 出口でカウントダウン して、 再帰の深さがいくつになってるかを分かりやすくしたかっただけ できるかぎり元ソースの形(>>145 リンク先)を維持したまま追加したので 途中脱出の部分で --reentcount してるけど void MergeSort(int x[ ], int left, int right) { /* ... */ ++reentcount; if (lest < right) { /* 本体 */ } --reentcount; } こういう記述にしたほうが良かったかな?
263 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:21:23.52 ] C言語で逆引きサンプルでいいサイトありませんか?
264 名前:デフォルトの名無しさん [2011/12/28(水) 15:39:11.42 ] コンパイル時に、 % gcc -DHEX=12 a.c とやって、ソースを int hex = 0x12; としたいのだけど、どう書けばいいんだっけ... ("0x"を追加したい) int hex = 0x00##HEX; じゃだめだよね..
265 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:55:16.80 ] VCでしか確認できてないけど、↓じゃだめ? #define HEX_VAL(arg) 0x##arg int hex=HEX_VAL(HEX);
266 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 15:59:39.30 ] それだとgccじゃだめなんだな... って、確かgccはその書き方じゃダメだったような気がしてきた。 コンパイラ別にするのイヤだから別の方法で回避するわ。
267 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 16:11:10.19 ] ああ シンボルHEX の実体展開がなされるかどうか か 2段にすれば解決するんだっけ #define HEX_VAL(arg) 0x##arg #define HEX_V(arg) HEX_VAL(arg) 過去 ttp://pc11.2ch.net/test/read.cgi/tech/1144824670/139,143
268 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 17:14:57.72 ] お前らマージソートを何も見ないでかける? 難しくない?再帰といい処理といい マージソートなんて使う意味あるのか?
269 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 17:31:29.27 ] >>268 マージソートはクイックソートと同じO(NLogN)オーダーの速度を持ちながら安定なソート だからstable_sort()に使われる 欠点としては多量の記憶域が必要な事と、クイックソートの約2倍の時間が掛かる 安定でなくてもいいならクイックソート、安定で速度が必要ならマージソート
270 名前:デフォルトの名無しさん [2011/12/28(水) 17:33:47.68 ] ふうん
271 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 18:04:35.58 ] 教科書に載ってるようなくらいのC言語しかしたことないんだけど 仕事でC言語って行ったらどんなことするの?
272 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 18:33:08.35 ] >>271 個人的な感想ですが、担当者レベルだと、ひたすら、 ビジネスロジックを設計(詳細設計)して書く、 そして、コーディング規則は現場によって違うけど、 厳しい方が後々良い。けど、書いているときはすごく面倒。 で、大体、テンプレート(見本のソース)を誰かが作ってくれて、 それを、自分のビジネスロジックに合わせて記述する。 ビジネスロジック意外の定番のロジックは大抵、 テンプレートを先輩が作っておいてくれるから、 C言語的には、基本は知っておけば良い。 っていうか、ポインタ程度の理解はすごい重要。 で、よほど、性能を優先する処理以外は、 「他の人がメンテナンスしやすい(理解しやすい)処理を書く」が 基本、というのが自分の大昔の大雑把な経験。 他の人(後任)が理解できない記述やロジックは嫌われる。 もちろん、処理速度を優先する場合は仕方ないけど・・・。
273 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 18:47:24.27 ] >>272 ポインタをどのくらいまで理解すればいいの?
274 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 18:55:07.18 ] ポインタを「このくらいは理解できた」なんてのは妄想。 理解できたか、理解できていないか、どちらかしか有り得ない。 面接で「ダブルポインタは大丈夫ですが、トリプルポインタは自信がありません」なんて 言っているような輩は、実際ポインタを理解できていない。
275 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 18:55:45.50 ] トリプルポインタなんて使う場面はほとんどないけどな 大抵ダブルポインタまで
276 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 19:14:22.51 ] ダブルポインタなんて言われた時点で「きっと理解できてないんだろうなぁ」と思っちゃう この単語は使わない方がいい
277 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 19:33:09.97 ] そもそもそんな質問する面接があんの? 今時Cの仕事ってなにがあるんだろうか。 8bitとかのワンチップマイコンくらい?
278 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 19:34:00.92 ] パチンコ
279 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 20:22:22.00 ] ■民主党政権になって放送禁止になった言葉一覧■ [道義的責任・進退問題・発言のブレ・閣内不一致・派閥・プライマリーバランス 空気が読めない・庶民感覚・国民目線・バラマキで人気とり・国民に信を問うべき・OECDの貧困率 ワーキングプア・ネットカフェ難民・世襲・料亭・漢字・読み違え・直近の民意・国民の生活が一番、政権交代が最大の景気回復策、公務員改革 ガソリン値下げ、景気回復策、解散総選挙、ホッケの煮付け 世襲制廃止、地域主権、議員定数削減、地球温暖化対策]
280 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 20:24:40.34 ] NGワード情報ありがとう
281 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 21:48:58.32 ] カーナビ除く車載ソフトはだいたいC言語
282 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 21:58:45.07 ] >>275 execv*() の引数 char **p を malloc() で確保する場合に、 それが子関数を呼び出して呼び出し先で確保して親関数に戻ってくる場合には、 途中で char ***, が出現しないだろうか? codepad.org/EhhHbMVZ
283 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 22:39:07.02 ] ぼくも先輩方のような立派なCプログラマーになりたいのですが 今は大学で学んだ程度の基本的なC言語の文法くらいしかわかりません。 この先はどのように学習していけば良いのでしょうか?
284 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 22:42:44.85 ] >>283 一口にC言語って言っても、それを使って何をやるかってのはすごく幅広い そして目的によって全然ノウハウは違ってくるから、実際みんな得意分野不得意分野がある 具体的に目標となる分野を決めて、その分野のプログラミングの勉強をすればいいんじゃないかな
285 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 22:57:38.97 ] >>284 Webプログラミングに興味あります
286 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 23:01:07.81 ] C言語はLinuxをかじっとけば大体大丈夫になる
287 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 23:05:44.32 ] >>285 じゃあC言語ではないが、HTML と CSS は覚えておいて欲しいな Webプログラミングと言っても細かく分けると色々あるから その後に何をやるのかは知らんが、何れにしろその辺の知識は役に立つはずだ あとWebプログラミングなら専門板もあるんだぜ WebProg kohada.2ch.net/php/
288 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 23:28:13.34 ] なんでWebって文理不問なの やっぱ組み込み系の方が賢いんですよね
289 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 23:28:56.60 ] 流石にC言語の質問から離れ過ぎでしょそれは
290 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 00:33:45.06 ] 大学で1年間プログラミングを習い、文法やポインタや構造体などを理解し、 簡単なCUIプログラミングをいくらか演習したようなレペルです amazonのレビューで好評だったんで S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル www.amazon.co.jp/dp/4434124234 この本を買ったんですが、難しすぎです こんな自分に、おすすめの書籍かサイトを教えてくださいませ
291 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 01:06:00.17 ] webweb言ってる香具師はweb板いけばいいのに
292 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 03:44:07.66 ] >>272 ああ、同意だわ。 後続が理解しやすい、には、他のソースと程度をあわせることも含まれるね。 いかに当たり前のような記述であったとしても、その書き方が他のソースでされていなければ「何だこの小難しいコードは」と思われてしまう。 C++をベターC(…)として使っているプロジェクトでstd::vector使っただけでその洗礼を受けた。
293 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 07:04:39.91 ] 例えばみんな手作業でマグロの一本釣りしてるのに一人だけ全自動リール使って楽してたら 空気読めない奴だと思われて村八分にされるのが落ちだろ 全自動リールってすごいね俺も今度からそれ導入しよう!とは絶対にならない 日本とはそういう国だ
294 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 07:29:09.68 ] PHPを開発の主において、C/C++をアセンブラに翻訳するように PHPをCに翻訳して使えば良いと思う。 生産性的に。 そういうコンパイラがあるが、winで動かず確認してない。
295 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 08:25:52.21 ] なんでその程度の知識と技術しかないのにえらそうに言うの?
296 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 08:54:28.71 ] × ポインタ ○ ポインター
297 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 08:56:53.53 ] アクセントは「ポ」  ̄\___ ポインター
298 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 09:05:03.26 ] ポリンキーか!
299 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 09:11:51.70 ] 犬かよ。 理系ならJIS使え。
300 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 11:46:23.09 ] CRCを計算するソース。 #define CRC32_POLY 0x82F63B78 // CRC-32C (Castagnoli) #define CRC32_POLY 0xEDB88320 // CRC-32-IEEE 802.3 class CrcCalculate { public: unsigned int crc32table[256]; void make_crc_table(); CrcCalculate() { make_crc_table(); } friend unsigned int crc32base (void *ch, unsigned int byte, unsigned int cal); } CrcCalculate_; void CrcCalculate::make_crc_table() { unsigned int i, j, x; for (i = 0; i < 256; i++){ x = i; for (j = 0; j < 8; j++) if(x&1) x=(x>>1 )^CRC32_POLY; else x>>= 1; crc32table[i]=x; }} unsigned int crc32base (void *ch, unsigned int byte, unsigned int cal) { unsigned int i; unsigned char *p = (unsigned char *)ch; for (i = 0; i < byte; i++) cal = (cal >> 8) ^ CrcCalculate_.crc32table[(cal ^ p[i]) & 0xFF]; return cal; } unsigned int crc32 (void *ch, unsigned int byte) {return crc32base( ch, byte, 0xFFFFFFFF ) ^ 0xFFFFFFFF ; } unsigned int crc32 (const std::string &ch) { return crc32( (void *)&ch[0], ch.size()); }
301 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 12:01:48.33 ] >>300 荒らし市ね。
302 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:04:48.42 ] CRC32は重要な割に、標準関数に組み込まれてないから、簡単に使えるように貼ったんだよ。
303 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:09:43.25 ] 頭悪そうだな。
304 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:20:16.19 ] チェックサムで十分
305 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:23:17.43 ] Cでもないもの貼るな。
306 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:25:37.35 ] つーか、CスレにC++貼るとか頭に蛆でも湧いているのかと。
307 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:41:44.93 ] C++をやるとバカになるっていう見本を、身をもって示してくれてるんだよ
308 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 13:45:31.04 ] お前ら、プログラミング以外だとイキイキしてるなw
309 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:02:11.94 ] c99の可能性は考えないのか。
310 名前:309 mailto:sage [2011/12/29(木) 15:02:54.34 ] 俺が悪かった。
311 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:20:39.12 ] C99禁止って職場は、レガシー以外の理由があるのかな?
312 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:46:10.20 ] 大抵は低レベルに合わせるためだと思うけどな。 それ以外だと互換性か。
313 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 15:59:30.55 ] C99を導入する理由がそもそもないだろ
314 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:00:30.91 ] c99禁止と言いながら、//コメントやブロック先頭以外での変数の宣言は使う顧客もいるにはいる。
315 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:25:21.48 ] windowsではfopenは同時にオープンできる数に制限がある。 オープン、クローズを繰り返して使うか、APIを使うしかない。
316 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:25:59.03 ] 大体は職場がターゲットにしてるコンパイラの問題だと思うけどね。 例えば、VC++はC99非対応。 まぁ、コーディング規約があって、上司が老害な可能性は否定出来ない。
317 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:33:17.25 ] >>315 windows以外だと制限がないの?
318 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:34:41.06 ] FOPEN_MAXで分かる。 windowsでは50になってた。 しかし47あたりで開けなくなる。
319 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:37:35.02 ] 標準入力や出力というものがあってだな。
320 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:37:48.58 ] >>318 そりゃデフォで3つディスクリプタつかうもん。
321 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:39:36.03 ] 移植性をたもちつつWindowsのUTF-16に対応できる_wfopenが良いと思っていたが ファイル数の問題にぶち当たるとAPI使うしかなくなるな。
322 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:43:22.77 ] 移植性のために、UTF-16(UNCODE)対応とファイル数制限を外した fwopenなどの関数群はないものか。自作しかするしかないか。
323 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 16:43:58.90 ] つーか、なんでそんなにたくさん同時オープンしたいん?
324 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:04:38.17 ] そんなに沢山オープンしていると却って管理が面倒な飢餓。
325 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:07:55.94 ] そのオープン数の制限はスレッド単位? プロセス単位? どっちにしろ、子スレッドなり子プロセスなりを立ててやらせたらいい。
326 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:23:44.04 ] #include <windows.h> #include <stdio.h> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { printf("てすと"); MessageBox(NULL , "Error" , "エラー" , MB_OK); return 0; } 失礼します。 メッセージボックスを出して、かつコマンドプロンプトにも文字を出力させたいのですが 上記のプログラムではメッセージボックスしかできません。どうすればよいのでしょうか?
327 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 17:33:02.27 ] Win32API質問箱 Build100 toro.2ch.net/test/read.cgi/tech/1323365008/
328 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 19:19:33.98 ] >>326 >editbin /subsystem:console hoge.exe
329 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:03:01.03 ] >>322 UTF-16なんて普通にfopenでいいじゃん ファイル数制限も普通に解除できるし
330 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:13:10.32 ] >>327 そこのスレすごくこわい
331 名前:デフォルトの名無しさん mailto:sage [2011/12/29(木) 20:17:46.19 ] W32を敵視する奴がいるから