X



C言語なら俺に聞け 150
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (アウアウクー 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
0074デフォルトの名無しさん (ワッチョイ 6ed2-/WZR)
垢版 |
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使ってたよ。
0075デフォルトの名無しさん (ワッチョイ bdc3-EwQo)
垢版 |
2019/02/12(火) 02:24:51.56ID:xDY2FToe0
Cしかかけませんっていうの
0076デフォルトの名無しさん (ワッチョイ bdc3-EwQo)
垢版 |
2019/02/12(火) 02:25:15.35ID:xDY2FToe0
Cしか書けませんっていうのは新卒就活のときに不利?
他にどんな言語を習得すればいいんだろうか
0077デフォルトの名無しさん (ワッチョイ 49e6-OF6d)
垢版 |
2019/02/12(火) 02:52:19.85ID:wp1a6nq70
まず「他にどんな言語を習得すれば良いんだろうか」なんて言ってること自体がかなり的外れかな
手段と目的の順序が逆

あと面接のときに「何故C言語を習得し、それを何に使ったんですか?」って聞かれてちゃんと答えられる?
0078デフォルトの名無しさん (ワッチョイ 91da-uR/r)
垢版 |
2019/02/12(火) 03:06:28.22ID:jEa3f+fD0
新卒であればプログラム言語そのものより他にアピールした方がいいと思うけどな
組み込みであれば現代制御理論、解析系であれば有限要素解析などC言語のプログラミングを応用する専門分野の知識を売り込んだほうがいいと思う
0079デフォルトの名無しさん (ワッチョイ aebf-feI+)
垢版 |
2019/02/12(火) 05:55:34.89ID:4zHmA9zW0
>>76
俺んとこではそれで充分
ただしCが書けるといってもHello worldの域を出ていないのは書けるうちに入らない
アルゴリズムの基本ができているかどうかを見ている
できていれば他言語が必要になっても泥縄ができるからだ
俺だってもともとアセンブラ屋で正社員3年目くらいのときにCの案件が回ってきて必死こいて憶えた
0081デフォルトの名無しさん (ワッチョイ 868c-gf/b)
垢版 |
2019/02/12(火) 09:06:46.70ID:lJ9WNOSb0
AならばBであるを表現できますか?と聞く
0082デフォルトの名無しさん (ワッチョイ 82d2-CHas)
垢版 |
2019/02/12(火) 09:17:13.28ID:puzbyhsI0
64ビットCPUでもデフォルトの命令のオペランドが32ビットだから
linuxでint_fast32_tを使うのは間違いだったんだな
多分64ビットのアドレス計算も32bitの命令があるからパッディングとかも
起こらないだろうな
0085デフォルトの名無しさん (ワッチョイ 82d2-CHas)
垢版 |
2019/02/12(火) 13:06:03.99ID:puzbyhsI0
>>82の4行目で多分って書いたけど
64ビットのムーブ命令は32ビットなら0埋めされるから
ポインターの引き算をしなければ64ビット整数を使う必要ないということだな
0093デフォルトの名無しさん (ラクペッ MM99-uR/r)
垢版 |
2019/02/12(火) 19:43:56.33ID:9j8xXtILM
いまどきの若者ならみんなPythonに行ってるよ
やや年食ってる連中ならJavaやC#
職人気質で頑固な偏屈者はC++
Cはかつての栄光を引き摺って余生を過ごす老人の言語
0095 ◆QZaw55cn4c (ワッチョイ e247-3ywI)
垢版 |
2019/02/12(火) 22:27:27.41ID:afakhEje0
>>93
でも言語を超えて活用されるライブラリ(libzip, libpng/libjpeg etc)は C で書かれることはあっても、OOP 諸言語で書かれることはないかと思うのですが?
C++ で記述される汎用ライブラリはありますか?
0102デフォルトの名無しさん (ワッチョイ 9127-feI+)
垢版 |
2019/02/13(水) 12:36:20.22ID:FB2A40HJ0
使えるというか、Cが分かるなら「〜の言語でやれ」って言われたらどの言語でも3日で仕事出来るくらいは当然だけどね。
java勢とかが3日でCやれと言われてポインタまみれのコード読むのは無理だろうけど。
0105デフォルトの名無しさん (スッップ Sd22-IyyE)
垢版 |
2019/02/13(水) 13:04:19.59ID:a9PctXZid
まあ新しい言語の勉強始めたら3日目にはそれなりに手が動くようになってるだろうからな。
でも仕事で使おうとするとプロジェクト設定の方法がわからないとかその辺で詰むと思うわ。
0107デフォルトの名無しさん (アウアウウー Sa05-KI3Y)
垢版 |
2019/02/13(水) 13:12:51.57ID:V+opB2+Aa
>>99
ライブラリないの?
0108デフォルトの名無しさん (アウアウウー Sa05-KI3Y)
垢版 |
2019/02/13(水) 13:15:49.92ID:V+opB2+Aa
3日ねえ。まあ、書けるには書けてもその言語の特性をうまく活用できるところまでは行きそうにないな。
0110デフォルトの名無しさん (ワッチョイ 9127-feI+)
垢版 |
2019/02/13(水) 14:38:53.83ID:FB2A40HJ0
>>109
Cしかわからなかったけど、入社して「これわかりやすいから」とjavapressをポンと渡され、3日後にはjavaで養鶏管理のシステムを作らされていたぞ。
業務知識なんて仕様書と上司に聞きながら覚えるものじゃん。業務知識覚えてから仕事って、新卒じゃないんだからw
0111デフォルトの名無しさん (ワッチョイ 49e6-feI+)
垢版 |
2019/02/13(水) 14:42:28.64ID:q5+/i40P0
業務知識覚えてから仕事なんて一言も書いてないけどw
こういう人ってちゃんとドキュメント類読めてるんだろうか
自己解釈でガンガン進めてから修正で苦労してそう

あと君が3日で出来るすごい人なのは充分分かったよ
0113デフォルトの名無しさん (ワッチョイ 868c-gf/b)
垢版 |
2019/02/13(水) 14:49:42.00ID:fZcB94Cs0
鶏が何を食っているか新卒で知っている人はいない。
貝殻食っていると知ってた?
0127デフォルトの名無しさん (ワッチョイ 275f-3QuV)
垢版 |
2019/02/14(木) 00:55:10.36ID:eGYXBQeH0
>>124
「はじめてのC」
0128デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 07:24:34.92ID:J1vF692V0
鶏の雌雄判別機を作ったらまじで大儲けできる。
0130デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 07:42:05.06ID:J1vF692V0
玉子だったらなお良い。
0135デフォルトの名無しさん (アウアウウー Sa4b-s2oh)
垢版 |
2019/02/14(木) 09:27:48.57ID:9tQDIG7ca
鶏のスレができたと聞いてゆっくり歩いてきました。
0136デフォルトの名無しさん (ササクッテロル Sp7b-mDuQ)
垢版 |
2019/02/14(木) 12:09:08.34ID:EQjYAhePp
>>124
A、B、そしてC言語だ、アホw
0138デフォルトの名無しさん (ササクッテロル Sp7b-mDuQ)
垢版 |
2019/02/14(木) 12:35:11.20ID:EQjYAhePp
っAPL
0140デフォルトの名無しさん (アウアウクー MM7b-3QuV)
垢版 |
2019/02/14(木) 17:42:21.71ID:WWAGjmY5M
>>128
ひよこの時点で選別されている。
0143デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/14(木) 19:22:48.32ID:Jtoe5svL0
雄のひよこの運命はマジでミンチ
0145デフォルトの名無しさん (アウアウウー Sa4b-s2oh)
垢版 |
2019/02/14(木) 21:15:49.32ID:FnxMJF+Da
昔々小学生の頃に道で売ってたカラーひよこを買って、だいたいは一晩で死ぬわけだがその時は電球で暖めたり色々やったら生き長らえて成長し、立派な鶏に成長し、その後親戚に引き取られて行ったが、すぐに食われた。
0147デフォルトの名無しさん (ワッチョイ 5fab-A2tD)
垢版 |
2019/02/16(土) 00:17:44.31ID:yq1cCgqT0
#include "A.h"
#include "B.h"

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

手作業でA.hないしはB.hから該当する関数を削除しないといけないかな?
0154デフォルトの名無しさん (ラクペッ MM9b-OxnY)
垢版 |
2019/02/16(土) 01:45:16.86ID:0XZqCZxyM
定義の意味が曖昧だけど自分ならヘッダーはプロトタイプ宣言だけなので関数定義そのものが
二重になることはまず無いな
*.cと*.hファイルの関数定義と宣言をきちんと区別していれば同一関数の二重定義なんて事態には
そうならないと思うんだが
0155デフォルトの名無しさん (ワッチョイ 5fab-A2tD)
垢版 |
2019/02/16(土) 03:04:51.53ID:yq1cCgqT0
int型の変数を文字列に変える
INT2STRって関数がバッティングしてる

便利な関数だからいろんなヘッダファイルに仕込んでるんだけど
そういうヘッダファイルを複数includeするとバッティングしちゃうんだよね
0156デフォルトの名無しさん (ワッチョイ bf8c-l0e6)
垢版 |
2019/02/16(土) 04:31:59.37ID:0BUCSxrk0
バッティングする関数を別のヘッダーにする。
0161デフォルトの名無しさん (ワッチョイ 5f01-3Kdw)
垢版 |
2019/02/16(土) 08:52:07.39ID:q1DAaOKG0
>>155
> INT2STRって関数がバッティングしてる
> 便利な関数だからいろんなヘッダファイルに仕込んでるんだけど
その関数を定義した"int2str.h"を作って
#pragma onceなり#ifndefなりでインクルードガードしておく
各ヘッダーファイルは"int2str.h"をインクルードすればいいだけ
0162デフォルトの名無しさん (ワッチョイ 7f8f-tyEA)
垢版 |
2019/02/16(土) 09:05:18.00ID:P5gjDjW+0
>>155

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

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

ヘッダファイルの使い方も間違ってるような…
0163デフォルトの名無しさん (ワッチョイ 7f8f-tyEA)
垢版 |
2019/02/16(土) 09:09:29.43ID:P5gjDjW+0
>>161
たぶんint2str.hはヘッダーファイルじゃなくて実装ファイルでインクルードすべき性質のものだよね。

細かいことかもしれないけど、ヘッダーファイルでインクルードすると他のファイルへの影響が増えるから、必要がない限りは実装ファイルの方でインクルードするべきだと思う。
0168デフォルトの名無しさん (ワッチョイ 5fab-A2tD)
垢版 |
2019/02/16(土) 10:58:48.72ID:yq1cCgqT0
ありがとう、みんなが背中押してくれたから決心が付いた(`・ω・´)

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

#ifndef _INT2STR_H
#define _INT2STR_H
...
#endif

でくくって多重定義を防ぐ(`・ω・´)b
0169デフォルトの名無しさん (ワッチョイ 5fd2-5nnY)
垢版 |
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が出力されるんですけどなぜですか?
0172デフォルトの名無しさん (ブーイモ MM6b-JXvc)
垢版 |
2019/02/16(土) 14:04:34.91ID:WseEcsSPM
defaultがラベルになる?switch の中に return だけになるのか?switch 素通りして関数の最後に return 無いけど return 0 になるのか?これコンパイルとおるの?
少なくともコンパイル警告は出るはずだから、素人は警告無視すんな
■ このスレッドは過去ログ倉庫に格納されています

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