C言語の設計ミスった危険な関数トップ10決めようぜ (215レス)
1-

116: デフォルトの名無しさん [sage] 2019/12/16(月)23:10 ID:xr9KOlE0(14/17)
>>112を分けてみて
117: デフォルトの名無しさん [sage] 2019/12/16(月)23:17 ID:xr9KOlE0(15/17)
関数分けってのは意味、機能、汎用性、...で分けるべきであって
単にループを抜けるのにreturnを使いたいから分けるとかを考えるべきじゃない
118
(1): デフォルトの名無しさん [sage] 2019/12/16(月)23:23 ID:xr9KOlE0(16/17)
素直にgotoの使い方を覚えた方が良いよ
意地はってないで
119
(1): デフォルトの名無しさん [sage] 2019/12/16(月)23:42 ID:arH1mwfY(12/13)
>>118
だから意味とか汎用性とかで分けると
自然にループに抜けるときにreturnを使えば良くなるんだよ
120: デフォルトの名無しさん [sage] 2019/12/16(月)23:45 ID:jL52ryYk(2/2)
gotoでもreturnでも読めれば良い
但し1関数50行以上は読めないんで宜しく
121: デフォルトの名無しさん [sage] 2019/12/16(月)23:48 ID:arH1mwfY(13/13)
>>112
だから「ループ」と書くなっちゅうねんw
関数を設計するならこんな感じやろ?

int func(int n){
int a[10] = {0};
memset_random(a, sizeof(a)); // a配列をランダムな値で埋める
int chksum = chksum(a, sizeof(a)); // a配列のチェックサムを計算
return 値
}

関数の中でループしてようが何して用が関係ないわ
122: デフォルトの名無しさん [sage] 2019/12/16(月)23:55 ID:xr9KOlE0(17/17)
sizeof(a) とか書くレベルの相手してたのか
アホらしい
123: デフォルトの名無しさん [sage] 2019/12/17(火)00:04 ID:JvBVW/sd(1/4)
>>119
じゃあ普通のbreakもいらないね
まさか使ってないよね
124: デフォルトの名無しさん [sage] 2019/12/17(火)06:41 ID:YMIUnRyv(1)
まあgotoあればbreakは要らんわなw
そんな言語は使いたくないけど
125: デフォルトの名無しさん [sage] 2019/12/17(火)07:00 ID:JvBVW/sd(2/4)
gotoもbreakもいらないって
126: デフォルトの名無しさん [sage] 2019/12/17(火)07:10 ID:JvBVW/sd(3/4)
gotoもbreakも無い
ループを抜けるときはreturn
switchを抜ける時もreturm
関数は単一の処理しか出来ない

こんな言語はイヤだね
127: デフォルトの名無しさん [sage] 2019/12/17(火)07:23 ID:JvBVW/sd(4/4)
後に退けなくなったアホの作る言語
128: デフォルトの名無しさん [sage] 2019/12/17(火)07:39 ID:odSFZTU+(1)
gotoの使い方

http://www7b.biglobe.ne.jp/~robe/cpphtml/html03/cpp03005.html
http://www9.plala.or.jp/sgwr-t/c/sec06-6.html
http://tomeapp.jp/archives/1029
http://opencv.jp/opencv-2svn/c/core_utility_and_system_functions_and_macros.html
129: デフォルトの名無しさん [sage] 2019/12/17(火)08:49 ID:QeraReD1(1/2)
たとえ相手がアホであっても、しつこく絡むのもまたアホだと思うんだが…
130: デフォルトの名無しさん [sage] 2019/12/17(火)12:33 ID:vDeQfs2U(1)
自分より下の人間を叩くしか能がないんだろ
ID:arH1mwfYなんてスルーでいいと思うんだがそれしか叩けないからいつまでたっても終わらないw
131: デフォルトの名無しさん [sage] 2019/12/17(火)13:15 ID:GBggCGQK(1)
雑談スレだしネタも無いから良いんじゃね?
132
(2): デフォルトの名無しさん [sage] 2019/12/17(火)18:32 ID:x9hYOthl(1)
String型が無いって死ぬほど不便なんだが
133: デフォルトの名無しさん [sage] 2019/12/17(火)19:06 ID:p6v4J1KY(1)
他の言語を使ってください
134: デフォルトの名無しさん [sage] 2019/12/17(火)19:18 ID:6LhBKKEf(1)
>>132
自分で似たようなものを作ればいいだろ。汎用的なものがあっても使い勝手や性能で何かしら不満が出るのだから、自分の要求に合致するものを自分で作りな。
135: デフォルトの名無しさん [sage] 2019/12/17(火)20:52 ID:QeraReD1(2/2)
特定の用途においてローカルラベルが役に立つことも無くはないかもしれないな。
自分でそれをやるかどうかは別にして。
いずれにせよ、gcc では式の中で変数を宣言できるのだから
ローカルラベルが可能になっても驚かないよ。
136: 132 [sage] 2019/12/18(水)23:56 ID:9RDvo6To(1)
typedefを使用
https://pastebin.com/iX2DDpRA
137: デフォルトの名無しさん [] 2019/12/19(木)00:12 ID:vqVcyk4J(1)
PHPはbreakにネスト数指定できるよな
138
(1): デフォルトの名無しさん [sage] 2019/12/19(木)09:03 ID:vjQjJ4nK(1)
C言語の開発者によるgoto文の使い方を対象とした実証研究の結果、「goto文は無害だと考えられる」
https://developers.srad.jp/story/15/02/14/2017207/
139
(1): デフォルトの名無しさん [sage] 2019/12/19(木)16:51 ID:86m15ms9(1)
longjmp についても調査してほしいな。
特に例は挙げないが、誰もが使っているようなプログラムでも結構使われてる。
140: デフォルトの名無しさん [] 2019/12/19(木)16:57 ID:+cpLTGtZ(1)
static
141: デフォルトの名無しさん [sage] 2019/12/25(水)01:15 ID:k3ZI/Zl3(1)
>>139
それは代わりがない。
142: デフォルトの名無しさん [sage] 2020/07/09(木)10:18 ID:tNMImStE(1)
>>7
大発明なんbだけどな、
リスクも大きい
143
(1): デフォルトの名無しさん [] 2020/07/09(木)10:22 ID:vrNDocOm(1)
発明って言うか当時はそれが普通だったろ
144: デフォルトの名無しさん [sage] 2020/07/09(木)10:51 ID:I92CxMlL(1)
longjmpは「設計上のミス」ではないんでは。
むしろそういう動作をする目的で設計・導入されたように思えるけど
(longjmpに関するRationaleを読んでないので当てずっぽうw)
145: デフォルトの名無しさん [sage] 2020/07/09(木)16:31 ID:KHuqFwsC(1)
>>5
エスティーアールトゥーケー
146
(2): デフォルトの名無しさん [sage] 2020/07/09(木)21:58 ID:Zo8nB2NL(1)
例外は setjump、longjumpて実装されてるんじゃないのかな?
違うのかな?
147
(1): デフォルトの名無しさん [sage] 2020/07/10(金)22:03 ID:AfLodKTd(1)
>>143
普通じゃない
当時はPascalの文字数+文字列が普通
148
(1): デフォルトの名無しさん [] 2020/07/10(金)22:26 ID:U1HXCT7S(1)
returnが1変数しか対応していないこと。

ポインター祭りになって可読性がウンコになる
149: デフォルトの名無しさん [sage] 2020/07/10(金)23:11 ID:7RoGj1wV(1)
>>148
可読性がうんこなのはお前の能力が足りないから
150: デフォルトの名無しさん [] 2020/07/11(土)00:22 ID:UdJEarb2(1)
いろんな言語たらい回しにされるって不幸だよね。

こういうノーガキ垂れる奴がウチの職場にいなくて良かった〜ヽ(´▽`)/
151
(1): デフォルトの名無しさん [] 2020/07/11(土)10:50 ID:J0INoyBc(1)
>>147
OSのAPIは文字数じゃなくて
文字列byte列+デリミタ'$'
みたいなのが多かったぞ
152: デフォルトの名無しさん [sage] 2020/07/11(土)12:01 ID:2M7rjl8q(1)
>>151
それはCP/Mの文字列出力がそうなっていただけ
入力はC言語のfgets()なんかみたいにデリミタの '$' を付加したりしないよ
153
(1): デフォルトの名無しさん [sage] 2020/07/11(土)23:02 ID:wT5X8b6q(1/2)
MASM もそうだけど、$ は実際にメモリに配置されるのですか?
それとも、db(アセンブラ命令)で長さを省略するためのものですか?
154: デフォルトの名無しさん [sage] 2020/07/11(土)23:04 ID:wT5X8b6q(2/2)
すみません、>>153 です
送信した瞬間に自分の発言の矛盾に気がつきました…
155
(1): デフォルトの名無しさん [sage] 2020/07/13(月)19:12 ID:Xa4f7njE(1)
>>146
longjumbと例外に関して
すばらしい文書があるからお読みなさって。
http://www.nurs.or.jp/~sug/a/super/longjmp.htm#sec36
156
(1): デフォルトの名無しさん [] 2020/07/13(月)19:20 ID:WBkWHxcT(1)
そっちは Not Found ですよ
http://www.nurs.or.jp/~sug/soft/super/longjmp.htm
157: ◆QZaw55cn4c [sage] 2020/07/13(月)20:53 ID:p7kPKe7n(1)
>>156
ありがとうございます、昔に読んだのに URL を失ってしまって…ずっと探していたんです
158: デフォルトの名無しさん [sage] 2020/07/13(月)21:24 ID:jVM2RLmn(1)
>>155
ありがとうございます >>146 です
拝見いたします
159: デフォルトの名無しさん [139] 2020/07/14(火)09:59 ID:obK0XQNS(1)
ありがとうございます。いや、longjmp をdisるような意図は無かったんだけど。
「シグナルとコールバック」も勉強になります。

http://www.nurs.or.jp/%7Esug/soft/super/signal.htm

この辺りは man を読んでも使い方が解りにくいので…
160: デフォルトの名無しさん [sage] 2020/07/23(木)11:48 ID:3i8DjqKb(1)
_sが付いてるやつ使えよ
161: デフォルトの名無しさん [sage] 2021/05/21(金)17:59 ID:lDwsy5iU(1/2)
関数じゃないけどこれやろ
If the unsigned type has conversion rank greater than or equal to the rank of the signed type, then the operand with the signed type is implicitly converted to the unsigned type.
うんこ
162
(1): デフォルトの名無しさん [sage] 2021/05/21(金)18:32 ID:lDwsy5iU(2/2)
プログラマを信じろと言うけどさ
じゃあ暗黙の型変換とか余計な節介やめてくれねーかな
163: デフォルトの名無しさん [sage] 2021/05/21(金)18:36 ID:HkPQV5tP(1)
cでまともに算数出来れば一人前
164: デフォルトの名無しさん [sage] 2021/07/18(日)03:12 ID:a6CF+eHw(1)
暗黙が嫌なら明示しろよばかじゃないの?
165: デフォルトの名無しさん [sage] 2023/01/02(月)19:09 ID:N1W2ThUk(1)
>>162
暗黙の型変換はワーニング出るようにできなかったっけ?
166: デフォルトの名無しさん [sage] 2023/05/10(水)10:41 ID:zbvSAEuT(1)
>>138
まとめがおかしい
啓蒙活動の結果gotoの有害な使い方は極めて少なくなった
というべきだろう
167: デフォルトの名無しさん [sage] 2023/08/04(金)19:33 ID:+XXFTri2(1)
ken thompsonがcreat()の最後のeを省いたのは失敗だったと
直すとしたらそこを直したいと
168: デフォルトの名無しさん [sage] 2023/09/27(水)15:27 ID:0JeuaQMM(1)
失敗は成功への近道だと思って取り組んでみよう。
169: デフォルトの名無しさん [sage] 2023/09/30(土)09:21 ID:z8ssgezC(1)
(”ロ”;)ゲゲッ!!
170
(1): デフォルトの名無しさん [sage] 2023/10/03(火)12:21 ID:QaeBAOHS(1)
型省略でintと看做すのはミスだろ
171: デフォルトの名無しさん [sage] 2023/10/04(水)22:29 ID:pmZG4qtZ(1)
>>170
K&Rの頃との互換性の為じゃないかな。

Cは、兎に角モノグサの為の様な仕様が多いよね。
一度馴染むと、BASICですら面倒くさい。
172: デフォルトの名無しさん [] 2023/10/05(木)17:05 ID:WXXGTjkD(1)
まんどくせ
173: デフォルトの名無しさん [] 2023/10/05(木)19:40 ID:KP6Kmsv6(1)
ポインタ渡し全般かな
174: デフォルトの名無しさん [] 2023/10/05(木)22:17 ID:nm5oakcJ(1)
Cの型はある意味pythonより弱い
175: デフォルトの名無しさん [sage] 2023/10/07(土)11:48 ID:QSI1NZ2Z(1)
ある意味というか、Pythonは一応強い型付けでしょ。
176
(1): デフォルトの名無しさん [] 2023/10/07(土)11:51 ID:SZDGKzpf(1)
Cに型なんかあって無い様なもんだしな
177: デフォルトの名無しさん [sage] 2023/10/07(土)17:38 ID:2aizzJpQ(1)
>>1
fgets知らんのかな
getsなんて使わない
どうしても使う時はfgets(buf,size,stdin)とすればいいだけ
178: デフォルトの名無しさん [] 2023/10/08(日)10:11 ID:CrdCteTP(1)
>>176
Cはアセンブラで言うところのアドレッシングが充実
179: デフォルトの名無しさん [] 2023/10/09(月)15:00 ID:gMk1hFfQ(1)
マクロが真っ黒
180: デフォルトの名無しさん [sage] 2023/10/15(日)02:11 ID:LZ9c8wO/(1)
∑(ノ▼ο▼)ノ オォオォオ!!
181: デフォルトの名無しさん [] 2023/10/16(月)09:47 ID:kgcCjrnK(1)
DDoS回避したみたいね
182: デフォルトの名無しさん [] 2023/10/17(火)11:44 ID:xDsy3kB7(1)
atan
(atan2の方じゃなくて)
183: デフォルトの名無しさん [] 2023/10/18(水)07:26 ID:rpmqe4zi(1/2)
くせの強いscanf()とか
184: デフォルトの名無しさん [] 2023/10/18(水)07:26 ID:rpmqe4zi(2/2)
くせの強いscanf()とか
185: デフォルトの名無しさん [] 2023/10/18(水)14:31 ID:UTD5vf1X(1/2)
visual studioでscanf()使ったらエラーになった
186: デフォルトの名無しさん [] 2023/10/18(水)14:31 ID:UTD5vf1X(2/2)
visual studioでscanf()使ったらエラーになった
187: デフォルトの名無しさん [] 2023/10/20(金)09:24 ID:/M3RKJCH(1)
free()
188: デフォルトの名無しさん [] 2023/12/15(金)15:34 ID:dazO4Xak(1)
sprintf()
189: デフォルトの名無しさん [] 2023/12/17(日)07:31 ID:9k4gJxXV(1/2)
fopen()
190: デフォルトの名無しさん [] 2023/12/17(日)08:12 ID:9k4gJxXV(2/2)
ctime()
191: デフォルトの名無しさん [] 2023/12/31(日)16:48 ID:vzW4N1bb(1)
fopen
192: デフォルトの名無しさん [] 2024/01/06(土)17:10 ID:3kEfHLiK(1)
strtok
193: デフォルトの名無しさん [] 2024/02/01(木)07:45 ID:aKV2ok3G(1)
freopen()
194: デフォルトの名無しさん [sage] 2024/02/01(木)10:15 ID:oHnzHX84(1)
アセンブラの補助言語に何期待してスレ立ててんだかw
195: デフォルトの名無しさん [] 2024/03/16(土)16:31 ID:YyexUT5o(1)
tmpnam()
196: デフォルトの名無しさん [] 2024/04/02(火)13:56 ID:OXdmWprY(1)
getenv
197: デフォルトの名無しさん [sage] 2024/04/02(火)20:32 ID:yb6rvSIG(1)
知ってる関数を並べるスレ
それにしても知らな過ぎるけどw
198: デフォルトの名無しさん [sage] 2024/04/08(月)01:34 ID:BIzdd6FB(1)
C言語自体が設計ミス
199: デフォルトの名無しさん [] 2024/04/19(金)05:42 ID:uD5nyH4z(1)
C言語はUNIXを作るために作ったんだから、それを流用したせいで、アプリケーションの作成には合わないところがあるのは当然。
200: デフォルトの名無しさん [sage] 2024/04/20(土)15:12 ID:CogYy1zn(1)
https://ja.wikipedia.org/?curid=1022

「UNIXを開発するためにC言語が作り出された」と言われることがあるが、「The Development of the C Language」によると、これは正しくなく、経緯は以下の通りである。
C言語は、当初はあくまでもOS上で動くユーティリティを作成する目的で作り出されたものであり、OSのカーネルを記述するために使われるようになるのは後の展開である。
201
(1): デフォルトの名無しさん [] 2024/10/02(水)13:09 ID:XbzwGALZ(1)
char *a と char a[] を関数の引数でも一緒にしてしまったところ
202: デフォルトの名無しさん [sage] 2024/10/04(金)12:11 ID:swUgCMz+(1)
>>201
そこは長所では・・・?
203: デフォルトの名無しさん [] 2024/10/04(金)13:36 ID:RixEjMnj(1)
長所だらけで困るわ
204: デフォルトの名無しさん [sage] 2024/10/06(日)00:28 ID:k+hD1Cqq(1/2)
配列からポインタへの暗黙の変換があるんだから型としては別で良かったんだよ
おかげで配列全体の値渡しや代入ができなくなってしまった
205: デフォルトの名無しさん [sage] 2024/10/06(日)00:39 ID:MZAtOKFs(1)
無意識にそんなムダなことやられても困る
mallocとか使って明示的にやれるからいいだろ
206
(1): デフォルトの名無しさん [sage] 2024/10/06(日)12:12 ID:onWt8ZIM(1)
値で渡したかったら構造体で包めばいいし
逆に配列を値渡しするような言語って少ないんじゃないの
参照渡しするのばっかりだろ
207: デフォルトの名無しさん [sage] 2024/10/06(日)13:06 ID:k+hD1Cqq(2/2)
一貫性のない型があるとジェネリクスに支障が出る
C++はそれですごい苦労した挙句std::arrayみたいな馬鹿みたいなものができた
208: デフォルトの名無しさん [sage] 2024/10/07(月)10:27 ID:1tKKan7C(1)
>>206
結局フレキシブル構造体が仕様として認められてる以上、実体渡しも信用ならんのよ
struct chinko{
int a;
char b[0];
};

gccならこんなうんちもある
struct unko{
int a[0];
char b[0];
};
209: デフォルトの名無しさん [] 2024/12/13(金)17:18 ID:cICuvaCO(1)
C++で気をつけなければならないのは
size_t i=10;
double x=3-i;
十分地獄を堪能できる。C言語もunsigned int使えば同じか
210: デフォルトの名無しさん [] 2024/12/13(金)20:54 ID:3kdcRUf+(1)

EchoAPIをVS Codeで使い始めてから、開発プロセスが大きく変わった
211: デフォルトの名無しさん [] 2024/12/21(土)10:57 ID:bIHzWCsd(1)
strlen
212: デフォルトの名無しさん [] 2024/12/21(土)17:09 ID:SDOaO/8s(1)
シュトーレン
213: デフォルトの名無しさん [sage] 2024/12/22(日)22:33 ID:63BRvCCZ(1)
fork;execvp
214: デフォルトの名無しさん [sage] 2024/12/29(日)07:02 ID:pX0TYs46(1)
C言語には、組み込み関数なんてmainしか無いと思うなあ。
215: デフォルトの名無しさん [sage] 2024/12/29(日)10:09 ID:Jnwqtt+s(1)
面倒くさいからPOSIXは組込み扱いでいいよ
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.028s