C言語なら俺に聞け 150

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウクー MM57-IE4z)
垢版 |
2019/02/06(水) 13:39:03.21ID:c4bnQMl3M

次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。

C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 149
https://mevius.5ch.net/test/read.cgi/tech/1540731704/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/02/11(月) 18:00:50.47ID:adB+iGat0
>>71
メガバイトって事は無いですね
初期の無印98で128KB、MAX640KBだったかな
386乗せたRAシリーズだと標準で640KB+1024KBだったと思う
2019/02/11(月) 18:55:56.19ID:ItYOkWkR0
あれ?
98note 使ってたけどメモリ増設で16MB 積むか12MBで妥協するかで悩んでいた記憶が…
勘違いかな?
2019/02/11(月) 19:06:33.17ID:sI6uV93B0
Ap2でいくら載せてたかなぁ・・・。
20だか30M程度だったと思う。
パリ有りメモリで近所で扱ってる店も無かった時代なんで。

ぐぐったら公式で最大 73.6MB 、非公式で125.6MBまでいけたらしい。

>HDDですら数十MBクラスが普通だったと思うが…
それはSASI HDDじゃないか?VM時代か?

RXで340M、AP2で4G のSCSI HDD使ってたよ。
75デフォルトの名無しさん (ワッチョイ bdc3-EwQo)
垢版 |
2019/02/12(火) 02:24:51.56ID:xDY2FToe0
Cしかかけませんっていうの
76デフォルトの名無しさん (ワッチョイ bdc3-EwQo)
垢版 |
2019/02/12(火) 02:25:15.35ID:xDY2FToe0
Cしか書けませんっていうのは新卒就活のときに不利?
他にどんな言語を習得すればいいんだろうか
2019/02/12(火) 02:52:19.85ID:wp1a6nq70
まず「他にどんな言語を習得すれば良いんだろうか」なんて言ってること自体がかなり的外れかな
手段と目的の順序が逆

あと面接のときに「何故C言語を習得し、それを何に使ったんですか?」って聞かれてちゃんと答えられる?
2019/02/12(火) 03:06:28.22ID:jEa3f+fD0
新卒であればプログラム言語そのものより他にアピールした方がいいと思うけどな
組み込みであれば現代制御理論、解析系であれば有限要素解析などC言語のプログラミングを応用する専門分野の知識を売り込んだほうがいいと思う
2019/02/12(火) 05:55:34.89ID:4zHmA9zW0
>>76
俺んとこではそれで充分
ただしCが書けるといってもHello worldの域を出ていないのは書けるうちに入らない
アルゴリズムの基本ができているかどうかを見ている
できていれば他言語が必要になっても泥縄ができるからだ
俺だってもともとアセンブラ屋で正社員3年目くらいのときにCの案件が回ってきて必死こいて憶えた
2019/02/12(火) 06:06:40.84ID:QnKLUVRS0
>>76
冗談抜きで一番大事な言語は日本語と英語。
開発職に論理的な表現力は重要。
81デフォルトの名無しさん (ワッチョイ 868c-gf/b)
垢版 |
2019/02/12(火) 09:06:46.70ID:lJ9WNOSb0
AならばBであるを表現できますか?と聞く
2019/02/12(火) 09:17:13.28ID:puzbyhsI0
64ビットCPUでもデフォルトの命令のオペランドが32ビットだから
linuxでint_fast32_tを使うのは間違いだったんだな
多分64ビットのアドレス計算も32bitの命令があるからパッディングとかも
起こらないだろうな
2019/02/12(火) 09:24:10.34ID:Y0SH8Lt40
>>82 どこが間違いなの?
2019/02/12(火) 09:29:01.84ID:puzbyhsI0
>>83
linuxはint_fast32_tが64ビットになってるから
2019/02/12(火) 13:06:03.99ID:puzbyhsI0
>>82の4行目で多分って書いたけど
64ビットのムーブ命令は32ビットなら0埋めされるから
ポインターの引き算をしなければ64ビット整数を使う必要ないということだな
2019/02/12(火) 13:19:08.47ID:4zHmA9zW0
ポインタの引き算に使うんならptrdiff_tだね
int_fast32_tが何ビットかには関係ない
2019/02/12(火) 15:07:18.06ID:s+eQ0w2IM
>>84
amd64では64bitが最速でないのに64bitが選ばれるのはおかしいっていう主張?
2019/02/12(火) 15:11:10.99ID:puzbyhsI0
>>86
わからん

>>87
正解
2019/02/12(火) 18:52:25.91ID:2Rlz0B+x0
このスレの平均年齢って幾つなんだ…(驚愕)
Cってもう若者は触らないっていう感じなんですかね。
2019/02/12(火) 19:06:37.74ID:5/zfp5Xa0
ここに書き込みしているのは、人間じゃないから
2019/02/12(火) 19:13:42.99ID:QnKLUVRS0
若者のC言語離れが叫ばれて久しいからな。
2019/02/12(火) 19:16:16.52ID:5/zfp5Xa0
50年前は、概ね若者だった
2019/02/12(火) 19:43:56.33ID:9j8xXtILM
いまどきの若者ならみんなPythonに行ってるよ
やや年食ってる連中ならJavaやC#
職人気質で頑固な偏屈者はC++
Cはかつての栄光を引き摺って余生を過ごす老人の言語
2019/02/12(火) 19:46:30.05ID:5/zfp5Xa0
Lunuxのソースって言語はなんだっけ?
2019/02/12(火) 22:27:27.41ID:afakhEje0
>>93
でも言語を超えて活用されるライブラリ(libzip, libpng/libjpeg etc)は C で書かれることはあっても、OOP 諸言語で書かれることはないかと思うのですが?
C++ で記述される汎用ライブラリはありますか?
2019/02/12(火) 22:30:48.71ID:Jl2Y8iQt0
Cの使い手が減ったんじゃなくて他の言語の仕事が増えてるんじゃないの。
もともとサーバー側のシステム開発をCでやったりはレアでしょ。
2019/02/12(火) 22:31:50.68ID:Jl2Y8iQt0
むしろ立場が怪しいのはjavaじゃないか?
2019/02/12(火) 22:33:34.82ID:CAePQpAGa
>>95
やっぱりアプリよりになっちゃうのは確かだね。
XMLのパーサとかだとオブジェクト指向の有り難みがある。
2019/02/12(火) 22:38:44.87ID:Jl2Y8iQt0
jsonをcで扱うのは涙がでますよ……
2019/02/12(火) 22:57:01.03ID:CAePQpAGa
Cでがんばろうと思うと、glibみたいな形になっちゃいますね。
2019/02/13(水) 12:23:21.90ID:ds2YQTN50
俺は有名な言語はほとんど全種類使えるから適材適所で使い分けてるは
2019/02/13(水) 12:36:20.22ID:FB2A40HJ0
使えるというか、Cが分かるなら「〜の言語でやれ」って言われたらどの言語でも3日で仕事出来るくらいは当然だけどね。
java勢とかが3日でCやれと言われてポインタまみれのコード読むのは無理だろうけど。
2019/02/13(水) 12:50:19.10ID:j9mDOCj4x
極端だけど、突然Prologでやれ!と言われても3日じゃまともに使えないと思う。
2019/02/13(水) 12:57:25.03ID:oF8nMyvD0
3日でできてしまう仕事ってお粗末そうだな
2019/02/13(水) 13:04:19.59ID:a9PctXZid
まあ新しい言語の勉強始めたら3日目にはそれなりに手が動くようになってるだろうからな。
でも仕事で使おうとするとプロジェクト設定の方法がわからないとかその辺で詰むと思うわ。
2019/02/13(水) 13:07:22.57ID:oF8nMyvD0
練達言語でさえ3日つーとやっつけ仕事くせえぞ
107デフォルトの名無しさん (アウアウウー Sa05-KI3Y)
垢版 |
2019/02/13(水) 13:12:51.57ID:V+opB2+Aa
>>99
ライブラリないの?
108デフォルトの名無しさん (アウアウウー Sa05-KI3Y)
垢版 |
2019/02/13(水) 13:15:49.92ID:V+opB2+Aa
3日ねえ。まあ、書けるには書けてもその言語の特性をうまく活用できるところまでは行きそうにないな。
2019/02/13(水) 13:23:21.11ID:q5+/i40P0
百歩譲って自分がもし言語が3日で出来たとしても業務知識や専門知識は3日では身に付かんから無理だわw
2019/02/13(水) 14:38:53.83ID:FB2A40HJ0
>>109
Cしかわからなかったけど、入社して「これわかりやすいから」とjavapressをポンと渡され、3日後にはjavaで養鶏管理のシステムを作らされていたぞ。
業務知識なんて仕様書と上司に聞きながら覚えるものじゃん。業務知識覚えてから仕事って、新卒じゃないんだからw
2019/02/13(水) 14:42:28.64ID:q5+/i40P0
業務知識覚えてから仕事なんて一言も書いてないけどw
こういう人ってちゃんとドキュメント類読めてるんだろうか
自己解釈でガンガン進めてから修正で苦労してそう

あと君が3日で出来るすごい人なのは充分分かったよ
2019/02/13(水) 14:42:57.53ID:Fe5QsHU80
業務知識を知ってから作るんだろう
新卒じゃないと知識なしに作り始めるのか
113デフォルトの名無しさん (ワッチョイ 868c-gf/b)
垢版 |
2019/02/13(水) 14:49:42.00ID:fZcB94Cs0
鶏が何を食っているか新卒で知っている人はいない。
貝殻食っていると知ってた?
2019/02/13(水) 15:10:52.45ID:Fe5QsHU80
仕様書に書いてあるんだろう
上司に教えてもらいながら開発するベテランさんは
知っていることなのかな?
2019/02/13(水) 15:11:22.39ID:4FvVMQftM
マジかよ、仕様書に貝殻ボタン追加しないと
2019/02/13(水) 15:28:42.70ID:ERyLIjVv0
貝殻というか石や砂など砂嚢(砂肝)に飲み込むものなら何でも良いんじゃないの?
2019/02/13(水) 15:30:11.62ID:q5+/i40P0
皆さん鶏に詳しすぎません?w
もしかして:鶏 飼ってる
2019/02/13(水) 15:31:15.00ID:ds2YQTN50
卵うむにはカルシウムがいるだろう
2019/02/13(水) 15:32:23.03ID:Fe5QsHU80
カルシウムが不足すると、イライラしてくる
貝殻囓ると多少は改善する
2019/02/13(水) 15:34:17.67ID:FB2A40HJ0
Cが出来るなら仕事で求められる程度のコーディングは3日で皆も出来るでしょというだけのお話だったのになぜか餌の話になっててワロタw
2019/02/13(水) 15:40:57.70ID:d5jEja6x0
Cのスレに書き込んでてかつ鶏飼育してるってすげー組み合わせ
2019/02/13(水) 15:43:10.55ID:q5+/i40P0
ここの人たちはマイコンで全自動の餌やり制御とか余裕で作ってそうだからなぁ
2019/02/13(水) 15:54:21.06ID:Q5DduoYTM
むしろ全自動鶏作ろう。
2019/02/13(水) 18:00:49.65ID:2WlGbphz0
まぁ、C言語のCはChickenの頭文字だからね。
2019/02/13(水) 18:16:41.77ID:i20vW39tM
ここでスベるとか…
2019/02/13(水) 18:19:31.10ID:q5+/i40P0
おじいさまたち、しっかりたのみますよ
127デフォルトの名無しさん (ワッチョイ 275f-3QuV)
垢版 |
2019/02/14(木) 00:55:10.36ID:eGYXBQeH0
>>124
「はじめてのC」
128デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 07:24:34.92ID:J1vF692V0
鶏の雌雄判別機を作ったらまじで大儲けできる。
2019/02/14(木) 07:33:43.74ID:5EPJ06Po0
鶏ではなくてひよこの雌雄判別だろ
130デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 07:42:05.06ID:J1vF692V0
玉子だったらなお良い。
2019/02/14(木) 07:45:47.66ID:MhXZGfUyd
それは機械学習の世界だからなpythonでやるべきだな
2019/02/14(木) 07:52:15.98ID:5EPJ06Po0
機械学習の段階に持っていく以前にどうやって特徴点を抽出するんだよ
2019/02/14(木) 08:01:05.34ID:bVlNWlBE0
>>130
レーザー使って卵のうちにてのはもうあるらしい
2019/02/14(木) 08:44:29.64ID:MhXZGfUyd
>>132
AIを信じろ、心を無にして写真を撮り続けるんだ。
135デフォルトの名無しさん (アウアウウー Sa4b-s2oh)
垢版 |
2019/02/14(木) 09:27:48.57ID:9tQDIG7ca
鶏のスレができたと聞いてゆっくり歩いてきました。
136デフォルトの名無しさん (ササクッテロル Sp7b-mDuQ)
垢版 |
2019/02/14(木) 12:09:08.34ID:EQjYAhePp
>>124
A、B、そしてC言語だ、アホw
2019/02/14(木) 12:31:22.40ID:eoj/2xbH0
B (programming language) が A programming language の流れを汲んでいるとは初耳だな
138デフォルトの名無しさん (ササクッテロル Sp7b-mDuQ)
垢版 |
2019/02/14(木) 12:35:11.20ID:EQjYAhePp
っAPL
2019/02/14(木) 16:09:27.74ID:7mjvw7zr0
Bは聞いたことがあるが、Aがあるのは初めて知ったw
140デフォルトの名無しさん (アウアウクー MM7b-3QuV)
垢版 |
2019/02/14(木) 17:42:21.71ID:WWAGjmY5M
>>128
ひよこの時点で選別されている。
2019/02/14(木) 17:54:09.12ID:5EPJ06Po0
ひよこ鑑定士
https://furikake.doda.jp/article/2018/09/10/90.html
2019/02/14(木) 17:55:33.11ID:dTIeIK2I0
まじかよプログラム書いてる場合じゃない
143デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 19:22:48.32ID:Jtoe5svL0
雄のひよこの運命はマジでミンチ
2019/02/14(木) 20:04:09.42ID:lvuH5t8P0
ひよこ鑑定士の雌雄判定プログラムになるわ
145デフォルトの名無しさん (アウアウウー Sa4b-s2oh)
垢版 |
2019/02/14(木) 21:15:49.32ID:FnxMJF+Da
昔々小学生の頃に道で売ってたカラーひよこを買って、だいたいは一晩で死ぬわけだがその時は電球で暖めたり色々やったら生き長らえて成長し、立派な鶏に成長し、その後親戚に引き取られて行ったが、すぐに食われた。
2019/02/15(金) 09:35:49.46ID:PLZ5J6XD0
ヒヨちゃん、ミケ、チョビ
2019/02/16(土) 00:17:44.31ID:yq1cCgqT0
#include "A.h"
#include "B.h"

A.hとB.hに同じ内容の同じ名前の関数が定義されてると
こうインクルードした時点でコンパイラから二重定義されてるぞ
とおしかりを受けるわけだがどうしたらいいかな?

手作業でA.hないしはB.hから該当する関数を削除しないといけないかな?
2019/02/16(土) 00:26:14.00ID:BHwuOYP40
ヘッダーで関数を定義するのが悪いんじゃ
2019/02/16(土) 00:31:06.99ID:DIoBwVhC0
#pragma onceではダメですか?
そういう話ではない?
2019/02/16(土) 00:35:57.27ID:QGJnkP2m0
AB共にその関数使用でインクルードするソースが多数あるのであれば
どちらか一方は関数削除し代わりにもう片方をインクルード
2019/02/16(土) 00:57:35.72ID:BxPlGezW0
いや普通に二重で定義せずに名前変えろよ
2019/02/16(土) 01:15:06.97ID:P5gjDjW+0
うん、事情によらず同じ名前の関数定義があっちゃだめでしょ。
2019/02/16(土) 01:16:19.79ID:BHwuOYP40
そのヘッダーをインクルードするソースが複数あったら、
やはりリンク時に二重定義とならないか?
2019/02/16(土) 01:45:16.86ID:0XZqCZxyM
定義の意味が曖昧だけど自分ならヘッダーはプロトタイプ宣言だけなので関数定義そのものが
二重になることはまず無いな
*.cと*.hファイルの関数定義と宣言をきちんと区別していれば同一関数の二重定義なんて事態には
そうならないと思うんだが
2019/02/16(土) 03:04:51.53ID:yq1cCgqT0
int型の変数を文字列に変える
INT2STRって関数がバッティングしてる

便利な関数だからいろんなヘッダファイルに仕込んでるんだけど
そういうヘッダファイルを複数includeするとバッティングしちゃうんだよね
156デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/16(土) 04:31:59.37ID:0BUCSxrk0
バッティングする関数を別のヘッダーにする。
2019/02/16(土) 05:23:54.50ID:mG+jUdie0
関数宣言だけなら多重でも文句はいわれない
マクロやtypedefに構造体の衝突ならインクルードガード施してそれだけをヘッダーに
};
2019/02/16(土) 07:51:21.96ID:cXYf2t9G0
#ifdef
#ifndef
#endif

の出番?
2019/02/16(土) 08:25:13.37ID:VTuLU8k00
ライブラリのヘッダ見てマネればいいじゃん


#ifndef _STDIO_H
#define _STDIO_H 1
...
#endif
2019/02/16(土) 08:47:05.29ID:DIoBwVhC0
みなさんpragma onceじゃなくてifndef派なんですね
2019/02/16(土) 08:52:07.39ID:q1DAaOKG0
>>155
> INT2STRって関数がバッティングしてる
> 便利な関数だからいろんなヘッダファイルに仕込んでるんだけど
その関数を定義した"int2str.h"を作って
#pragma onceなり#ifndefなりでインクルードガードしておく
各ヘッダーファイルは"int2str.h"をインクルードすればいいだけ
2019/02/16(土) 09:05:18.00ID:P5gjDjW+0
>>155

「便利な関数だからいろんなヘッダファイルに仕込んでるんだけど」

普通は
「便利な関数だからライブラリ化していろんな実装ファイルでインクルードしてる」
とするべきでしょ。

ヘッダファイルの使い方も間違ってるような…
2019/02/16(土) 09:09:29.43ID:P5gjDjW+0
>>161
たぶんint2str.hはヘッダーファイルじゃなくて実装ファイルでインクルードすべき性質のものだよね。

細かいことかもしれないけど、ヘッダーファイルでインクルードすると他のファイルへの影響が増えるから、必要がない限りは実装ファイルの方でインクルードするべきだと思う。
2019/02/16(土) 09:19:18.44ID:mG+jUdie0
関数の実体をヘッダーにおいているのか
inline キーワードが使えるなら… という話かな?
2019/02/16(土) 09:40:04.81ID:suSnt5KvM
>>163
いやそんなことはみんなわかっててでも本人やりたいならこうすればいいよって言ってるだけだろ
2019/02/16(土) 09:59:46.09ID:t+1YRxqBa
これはみんなボケてるの?
2019/02/16(土) 10:56:39.56ID:BHwuOYP40
ワザとだろう
2019/02/16(土) 10:58:48.72ID:yq1cCgqT0
ありがとう、みんなが背中押してくれたから決心が付いた(`・ω・´)

ヘッダーファイルint2str.hを作って
関数INT2STRの実体はint2str.cに記述、
int2str.hには

#ifndef _INT2STR_H
#define _INT2STR_H
...
#endif

でくくって多重定義を防ぐ(`・ω・´)b
2019/02/16(土) 13:29:20.93ID:GySit7mC0
#include <stdio.h>

int f(int i){
switch(i){
defalut:
return i;
}
}
int main(void) {
printf("%d\n", f(2));
return 0;
}

このコードを実行するとfの入力が何であっても0が出力されるんですけどなぜですか?
2019/02/16(土) 13:46:58.56ID:3/SZoFmmd
>>169
一応手元で試したらちゃんと2がでたよ。
printfでなくてmain関数の結果を表示してるとか?
2019/02/16(土) 13:49:29.31ID:BHwuOYP40
>>169
defalut:
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況