[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 19:06 / Filesize : 223 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門編)Part 95



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/

803 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:49:52.46 ]
正解なんてないんだよ。
何か型を導入したいならそのルール前提記述するしかない。
ルールを強制するならこれでいい。
typedef enum {
  false,
  true
} bool;

804 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:57:41.07 ]
!aとか!bとか書くことになるなら、a,bに入れるときに真偽値を反転させとくのがよい
a=(1==1)だったのならa=(1!=1)にする
でそのまま条件式に使えば真偽値の値がなんなのかなんて気にしなくて済む

805 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 20:59:44.13 ]
>>803
普通に整数書いてもコンパイル通るからあんまりありがたくない

806 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:00:07.89 ]
!aは別にいいんじゃね
個人てきにはa==0より!aのほうが分かりやすいと思う

807 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:01:35.73 ]
>>805
だからCならルールを強制するしかないと言ってるだろ。
defineでも同じだろ。

808 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:02:57.15 ]
そして僕はそっとタブを閉じた

809 名前:デフォルトの名無しさん mailto:sage [2012/01/31(火) 21:31:12.05 ]
そこで私はブラウザのトップ画面をこのスレにしておいた。

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って出てます。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<223KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef