- 1 名前:デフォルトの名無しさん [2012/01/13(金) 22:05:06.14 ]
- C言語の*入門者*向け解説スレッドです。
★前スレ C言語なら俺に聞け(入門編)Part 94 toro.2ch.net/test/read.cgi/tech/1324648274/ ★過去スレ 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++の宿題片付けます 155代目 toro.2ch.net/test/read.cgi/tech/1325685876/ ★C++言語については避けてください。C++対応明記スレへどうぞ ★分からない事をなるべく詳しく書いて下さい。 ★ソースコードを晒すと答えやすくなるかもしれません。 # 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること # サイズが大きい場合は宿題スレのアップローダ等を利用してください ★開発環境や動作環境も晒すと答えが早いかもしれません。 ★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。 長くなりそうなコードはcodepadに貼り付けてもいいでしょう codepad.org/
- 810 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:03:47.30 ]
- a==0の方がわかりやすいが、自分でコードを書くなら!aかな。
- 811 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:06:45.51 ]
- !810
- 812 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:09:36.68 ]
- 論理値で扱うものなら!、そうでなければ==0。
それだけだろ。
- 813 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:22:54.15 ]
- そのとおり
- 814 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:31:12.11 ]
- C言語の仕事なんてほとんどないってほんと?
- 815 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 22:52:21.60 ]
- 組み込み系はガチC全盛なんじゃないか?
他はC++なら聞くがCってのは聞かないな
- 816 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 23:07:03.26 ]
- 組み込みでCで仕事してるよ
今のところC以外に移りそうな様子は微塵もないな
- 817 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 23:07:48.32 ]
- ああ、でもCのコードを自動生成する方向には向かうかも
- 818 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 23:26:15.60 ]
- >>816
組み込みって何? TVだと思いっきりC++だったな。
- 819 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 01:36:38.40 ]
- 「携帯電話や自動販売機などの組み込み機器(中略)
組み込みシステムのソフトウェア開発には、C言語が主に使われています」 H8で学ぶマイコン開発入門(2):組み込みソフトウェア開発はC言語が主流だ (1/3) - @IT MONOist monoist.atmarkit.co.jp/mn/articles/0610/12/news142.html
- 820 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 08:16:11.14 ]
- >>818
携帯もC++でやったことがある。
- 821 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 10:26:44.02 ]
- >>818
組込みってもPICマイコンの電子工作から産業機械の制御まで幅広いからな。。。
- 822 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 10:53:03.24 ]
- 組込系おもしろそう。どこで求人してるんだ?ないよ?
- 823 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:09:21.30 ]
- 組み込み 求人 でググレカス
- 824 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:34:15.45 ]
- 結局組み込み以外、Cの使い道はないんですね。
- 825 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:45:01.82 ]
- 2chで世間が判った気になるなよw
- 826 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:47:10.58 ]
- >>819
ちょっwww それ2006年の記事じゃんw 古っ
- 827 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:47:16.09 ]
- >>824
高級言語の拡張とかにも使われる
- 828 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 11:52:28.64 ]
- マイコン用にCで書いてるけど、
プロトタイプ無しで呼べるとか 違う型のポインタが暗黙に変換できるとか 負の資産を感じる。 classとかtemplateとか使いたい訳じゃないが CソースもC++コンパイラでコンパイルしたい。
- 829 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 12:44:39.39 ]
- >>828
コンパイラが使いにくいとかの理由?
- 830 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 12:55:16.29 ]
- C++じゃなくて純Cの環境だからC++の環境でコンパイルしたいってことだろ
純Cの仕様はかなり緩いところがあるから、ミスを誘発する…と
- 831 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 13:00:50.75 ]
- それじゃあそういうコンパイラをCとかで書けばいいじゃん
Cにこだわらなくてもいいな、lispやらperlやらでもかけるぞ
- 832 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 13:43:55.29 ]
- gccで最も厳しいチェックをするようにして凌いでた事もあったが、最新の組み込みは複雑化してるんだろうなあ。
- 833 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:12:53.12 ]
- VisualStudio でCのソースをビルドすると、入出力関数を_s付きのセキュアな関数に
置き換えることを検討しろって出るんですけど、標準入出力関数って、あぶないの?
- 834 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:15:11.72 ]
- とっても。
- 835 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:17:19.17 ]
- 文字列用のバッファに起因する脆弱性をついたものとか結構あったじゃないか
- 836 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:26:42.38 ]
- (σ・∀・)σゲッツ!!
- 837 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:28:52.87 ]
- なんで標準の関数を安全にしないの?
- 838 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:29:44.43 ]
- またまたまた ホモキタ━━━━━━(゚∀゚)━━━━━━ !!
- 839 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:37:32.19 ]
- 標準の関数を安全にしようとすると、今までのコードを変更させなければならなくなる
- 840 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:41:30.54 ]
- セキュア関数は脆弱性を減らすだけだから、攻撃への対処はやはり必要。
- 841 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 14:43:38.68 ]
- ナイフをむき出しで売ってて取り扱い注意だったのが
鞘付きのバージョンが用意された、くらいだな。 ちゃんとした使い方しないと危ないことに変わりは無い。
- 842 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 15:09:04.31 ]
- わかったようなこと書くなw
- 843 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 16:50:08.80 ]
- 低能のたとえ話は意味不明だな。自分ではうまい事言ったつもりなんだろうな。
- 844 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 16:58:40.68 ]
- 841ではないが、意味不明ではないだろ。塚、理解力ないのか?
- 845 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:04:36.96 ]
- 意味が通じるのはすでにわかってる人だろう
すでにわかってるんだから意味が無い
- 846 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:08:20.21 ]
- じゃあなんで脆弱な標準関数を放置してるんですか?
- 847 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:09:31.60 ]
- >>846
別の言語使えや
- 848 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:11:32.51 ]
- >>846
>>839
- 849 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:12:49.76 ]
- C# って、(C++)++ってことなんですか?
- 850 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:55:17.44 ]
- ちがうよ
++をくっつけてちょっとおしゃれに斜めに配置しただけじゃないの? もしくは音楽で#は半音上げるだからそこからきてるなかも だとすると++は1上がるけど#は0.5しか上がらないから C<<<<C#<<<<<C++ つまりC++には敵いませんという意味の謙虚なネーミングだな
- 851 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 17:57:04.36 ]
- >>846
脆弱性があるだけで使っちゃダメなわけじゃない 勝手にかえられて勝手に速度が下がるとか勘弁願いたい
- 852 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:07:13.92 ]
- g++を移植する、とか
- 853 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 19:43:11.75 ]
- ウィンドウズの旗のイメージね
■■ ■■
- 854 名前:デフォルトの名無しさん [2012/02/01(水) 20:07:54.57 ]
- C++-1+2 てとこかな、現状
- 855 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 20:25:42.76 ]
- それはc+2になると思うが、何の話だ。
- 856 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 20:27:11.30 ]
- もう 起動言語C+++ トリプルインクリメント とかいうアニメでも作っちゃえよ
- 857 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 20:29:40.46 ]
- c+2はでねぇよぉ
- 858 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 20:42:07.14 ]
- 何の話だ。
- 859 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:03:15.68 ]
- puts((c++-1+2 == c+2) ? ">>857 m9" : ">>854 m9");
- 860 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:20:51.19 ]
- >>859
たった1行なのにバグってるとかw C++なんだから評価後をチェックしないとアカン。
- 861 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:29:54.14 ]
- 不定?
- 862 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:31:19.43 ]
- 副作用完了点問題?
- 863 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:32:05.62 ]
- バグってないよ
- 864 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:34:03.24 ]
- いずれの時点でもc+2と同じ値になることはないが。
- 865 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:35:26.50 ]
- >>860
こうか a=b=c; puts((a++-1+2 == b+2) ? ">>857 m9" : ">>854 m9");
- 866 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 21:48:43.57 ]
- CとC++が同じという前提なんか?
C == C++
- 867 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:22:10.99 ]
- Cの組み込み系はSEの中でもブラック率が高いって聞いたけど本当?
- 868 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:52:12.37 ]
- まずは言った奴に聞けば?
- 869 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:53:01.30 ]
- 言ったやつが、いや嘘。なんて言う確率は相当低いと思うけどな。
- 870 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 22:55:20.26 ]
- 「括弧内に書いてあることは嘘です」
- 871 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 23:03:55.27 ]
- 何故なのかを、言った奴に聞けって事だろ。
- 872 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 23:21:41.09 ]
- 完全新規でCの大規模開発ってもうないんじゃね?
Cでやってる=過去の遺産を使ってる=謎設計コードを含んでる=?
- 873 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 23:29:05.36 ]
- 俺はゲハとはそういうものだと認識してるから煽りなんてどうでもいいし盛り上がる時もあるからいいだけど
嫌がるやつ多いからな
- 874 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 23:47:20.86 ]
- 恥ずかしいやつww
- 875 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 04:10:25.73 ]
- >>873
ここ、ゲハじゃないっすよ
- 876 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 04:11:27.30 ]
- 誤爆を謝らない態度、潔し
- 877 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 06:55:02.65 ]
- 組み込み系はメーカー常駐だから偽装請負か特定派遣ということになる
結局は使い捨ての奴隷
- 878 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 08:54:25.32 ]
- やめたげてよぉ
興味があっても趣味に留めておくのがいい
- 879 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 10:27:02.00 ]
- >>878
趣味ならPICマイコンでアセンだな
- 880 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 10:28:06.21 ]
- アセンって何だw
アセンブラのブラ消してたw
- 881 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 11:10:53.09 ]
- 組み込み以外でもドナドナIT。
- 882 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 11:18:13.43 ]
- おまえらがそんなだから
大陸や半島に後れを取るんだよ
- 883 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 11:53:06.84 ]
- >>880
ノーブラ
- 884 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 12:24:05.26 ]
- Cというとご老人がスパゲッティ相手に悪戦苦闘するイメージだな
- 885 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 12:28:33.03 ]
- 使う人次第だな
- 886 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:22:46.33 ]
- ttp://codepad.org/ZFyYfybI
このコードみたいなunionの使い方って安全? x , y , zの間にパディングが入ることってあり得る?
- 887 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:29:50.23 ]
- まぁ普通は大丈夫だろうけど、保証はないね。
#pragmaなりオプションなりそのコンパイラ固有のものを使わないと。
- 888 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:35:25.22 ]
- 同じものを並べてパディング入るケースってあるのか?
- 889 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:41:30.36 ]
- ttp://codepad.org/vZr9h4fQ
これで勝つる
- 890 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:43:41.03 ]
- >>888
80 ビットの long double とかならありそうじゃないか? 試してないけど
- 891 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 15:56:08.84 ]
- 並んでるのが同じものかどうかは関係ない
CPUの都合に合わない大きさのものに入る
- 892 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 16:03:08.56 ]
- じゃあ例を出してみなw
- 893 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:00:59.97 ]
- MIPS32だとchar a, b, c;は32bitごとになるんじゃないか?
- 894 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:05:35.60 ]
- 配列は例外なのか?
- 895 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:07:52.00 ]
- コンパイラの実装依存だろ
どうこういっても意味なし
- 896 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:08:02.45 ]
- いや、例外とかじゃなくMIPSはバイトアクセスのペナルティが大きいから
オプションによってはそうじゃなかったかなと。
- 897 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 17:18:13.79 ]
- >>895
最初からそう言ってるんだが、>>892はそんなものは実在しないと言ってるんだ。
- 898 名前:デフォルトの名無しさん [2012/02/02(木) 21:01:28.93 ]
- 周りにプログラミングのこと聞ける人がいないので、教えてください。
最近x code4のcommand line toolを使ってC言語を学びはじめました。 今まではrunを押せば、下に色々反応(文字の表示や入力を求める表示)があったの ですが、今日はrunを押すとfinish runningとでるだけで、下にまったく反応がありません。 そこで違うコードを入力したところ今まで通り反応がありました。 色々ネットで原因を探してみたのですが、わかりませんでした。 コードに問題があるんでしょうか? /*postagec*/ #include <stdio.h> void input_data(void); void calculate(void); void output_data(void); int distance,weight,size,postage; int main (void){ void input_data(void); void calculate(void); void output_data(void); return 0;} void input_data(void){ printf("距離[%dkm]重さ[%dg]を入力してください",distance,weight); scanf("%d%d",&distance,&weight); return;} void calculate(void){ if(weight<=100){size=1; }else if(weight<=1000){size=2; }else{size=3;} if(distance<=100){size=size+10; }else if(distance<=1000){size=size+20;}else{size=size+30;} return;} void output_data(void){printf("サイズは%dです\n",size); printf("料金は%d円です\n",postage);return;} どなたか解決方法がわかるかた教えてください。 よろしくお願いします。長文すいません。
- 899 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:07:44.00 ]
- 素直にあいぽんとか叫んじゃえよ
- 900 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:16:47.23 ]
- スペースが全角になってるが?
- 901 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:19:09.09 ]
- 何も実行されないプログラムになってますしおすし
- 902 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:22:52.46 ]
- >>898
このようになおせば動くと思うよ。 int main (void){ input_data(); calculate(); output_data(); return 0;} > コードに問題があるんでしょうか? プログラムは書かれた通りに動く。期待通りに動かないのは キミ自身が期待するコードをキミが書いていないからだ。
- 903 名前:デフォルトの名無しさん [2012/02/02(木) 21:22:53.67 ]
- >900
スペースは書き込んだときに改行多すぎというエラーが でたので改行減らすためにコードをいじったためかと・・・ x code上ではno issuesって出てます。
- 904 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:23:31.91 ]
- >>898
スレ違い Xcode part10 anago.2ch.net/test/read.cgi/mac/1319171665
- 905 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:24:04.12 ]
- > printf("距離[%dkm]重さ[%dg]を入力してください",distance,weight);
ここに問題があるに1000ペリカ
- 906 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 21:25:05.25 ]
- >>898
codepad.org/wD7XPijJ b.c は私が書きたいように書いた。 b.c.orig は >>898 の書き方になるべく沿って書いた。 global 変数は余り使わないようにしよう。 変な癖がついて、糞野郎って思われるようになるよ。
- 907 名前:デフォルトの名無しさん [2012/02/02(木) 21:46:51.24 ]
- >>902
902さんのいう通りにしたら動きました。 コードの内容がまだ理解できていないので、なんで動かなかったか 調べてみます。 ありがとうございました。 global変数はだめなんですか? ニコ動の動画通りにやってたので、プログラマーの常識(?)なんかは 全然知らないので勉強になりました。 ありがとうございました。
- 908 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:08:32.44 ]
- C言語の解説動画って需要あるの?
ちょっとどの動画を見たのか教えて欲しい あと検索単語も > global変数はだめなんですか? 使わないで書けるなら使わない方が良い。 >>898のは数十行だからそこまで問題ないけど、 global変数の値の書き換えってどこでもできちゃうから、 数百行や数千行になってくると、 bugの温床となりやすい。 どこか〜〜_init()関数だけでglobal変数の設定をして 他の場所ではglobal変数の参照だけする。 とかならいいんだけど、なかなかうまくいかないんだ。 特に初心者のうちは使わない方が吉。
- 909 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:12:44.41 ]
- C言語って初心者向けじゃない気がするんだよな
- 910 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 22:14:51.48 ]
- >>898
書き方が汚かったので、多分書き方を知らないんだと思う。 Pythonのなんだけど、これを参考にして書くといいよ。 以下だけは、 タブは4個の空白に等しいとする。 って読み替えて。 PEP 7 -- Style Guide for C Code: www-acc.kek.jp/WWW-ACC-exp/KEKB/control/Activity/Python/doc-j/pep-0007-J.html ソースプログラムの配置 - Use single-tab indents, where a tab is worth 8 spaces. - ソースのインデントには、タブ一つを使う。タブは八個の空白に等しいとする。
|

|