!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C17
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf
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言語なら俺に聞け 157
https://mevius.5ch.net/test/read.cgi/tech/1624846971/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C言語なら俺に聞け 158
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ブーイモ MMcf-4SjH)
2021/12/25(土) 12:11:46.61ID:xxeaCAplM2デフォルトの名無しさん (ワッチョイ 8f5f-c3Iq)
2021/12/25(土) 12:43:13.14ID:Ktk9audT03デフォルトの名無しさん (ワッチョイ f763-bp1O)
2021/12/25(土) 17:06:51.38ID:yFln3WYH0 規格が一杯あるけれど、普通はどれを使うの?
4デフォルトの名無しさん (ワッチョイ 5b66-2Otn)
2021/12/25(土) 18:23:03.37ID:1RbqwiRd0 >>3
C89=K&R2
C89=K&R2
5はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c33e-t0J7)
2021/12/25(土) 20:24:45.71ID:SzBCpv2O0 考え方によるのでどれが普通ということはないと思う。
たとえば C は古いシステムの保守のためと割り切るなら C89 にこだわる理由になるが、
C++ との連携を考えるなら C17 を選択する理由になる。
(C++20 が参照する C の規格は ISO/IEC 9899:2018 のことなので。)
私自身は C99 を基本としつつ C99 がどうしても使えない事情があるなら C89 を選択することはありうるが、
C99 で問題ない場面であえて C89 を使ったりはしない。
C11 以降の機能が各プロジェクトで特に有用で処理系やツールチェインに不安がないならそれを選ぶこともある。
たとえば C は古いシステムの保守のためと割り切るなら C89 にこだわる理由になるが、
C++ との連携を考えるなら C17 を選択する理由になる。
(C++20 が参照する C の規格は ISO/IEC 9899:2018 のことなので。)
私自身は C99 を基本としつつ C99 がどうしても使えない事情があるなら C89 を選択することはありうるが、
C99 で問題ない場面であえて C89 を使ったりはしない。
C11 以降の機能が各プロジェクトで特に有用で処理系やツールチェインに不安がないならそれを選ぶこともある。
6デフォルトの名無しさん (ワッチョイ 5bb0-BY+R)
2021/12/25(土) 22:11:33.64ID:UngnJYXc0 C++が使えるならC++でいいと思うんだがな。
C99以降が使えるけどC++が使えない|使っちゃダメなシチュエーションてのがあまり思いつかない。
C99以降が使えるけどC++が使えない|使っちゃダメなシチュエーションてのがあまり思いつかない。
7デフォルトの名無しさん (ワッチョイ f763-bp1O)
2021/12/25(土) 22:18:46.07ID:yFln3WYH0 Linuxカーネル
8デフォルトの名無しさん (ワッチョイ 5bb0-BY+R)
2021/12/25(土) 22:35:15.30ID:UngnJYXc0 個々のプロジェクトのポリシーとしてならそれこそPLの好みでいくらでもあるだろうけど。
でもLinuxてC99使ってた?
でもLinuxてC99使ってた?
9デフォルトの名無しさん (ワッチョイ a34c-ch9D)
2021/12/28(火) 07:02:41.51ID:p+qHklGW0 C99か。。。。
変数を途中で定義できたりforスコープは有難いんだけど
そういうのはC++があるからCにはあんまり求めない
わざわざCなときは枯れたところを使いたい
すると半ば無意識にC89になってる
変数を途中で定義できたりforスコープは有難いんだけど
そういうのはC++があるからCにはあんまり求めない
わざわざCなときは枯れたところを使いたい
すると半ば無意識にC89になってる
10デフォルトの名無しさん (ワッチョイ f763-bp1O)
2021/12/28(火) 11:07:50.33ID:3O27DpuF0 途中宣言なんてブロック内でしか使いたくない
11デフォルトの名無しさん (ワッチョイ a34c-ch9D)
2021/12/28(火) 11:12:07.15ID:p+qHklGW0 ん? いや、ブロック内でしかできんだろ
12デフォルトの名無しさん (ワッチョイ 8f5f-j5Xv)
2021/12/29(水) 11:02:54.88ID:gOGJDejA0 1/6までc magazineが1冊55円でセールやってるぞ。
13デフォルトの名無しさん (ワッチョイ 9db3-ass7)
2021/12/29(水) 12:26:40.10ID:TemGM5eX0 >>12
サンクス!
サンクス!
14デフォルトの名無しさん (ワッチョイ e3ad-t0J7)
2021/12/29(水) 13:44:32.51ID:Uqmbe8qT0 アマゾンにあるな。55円か。俺のアマゾンポイントが56なのでポイントで1冊ただで買えるが。うーん。どれを買うか。
15デフォルトの名無しさん (ワッチョイ b101-j5Xv)
2021/12/29(水) 13:47:59.87ID:wwN1RbRp0 消費税が6円必要だぞ。
16デフォルトの名無しさん (ワッチョイ 9db3-ass7)
2021/12/29(水) 13:49:14.80ID:TemGM5eX0 アマゾンは全部税込み表示だよね?
17デフォルトの名無しさん (ワッチョイ e3ad-t0J7)
2021/12/29(水) 13:50:10.27ID:Uqmbe8qT018デフォルトの名無しさん (ワッチョイ b101-j5Xv)
2021/12/29(水) 13:51:51.39ID:wwN1RbRp0 じゃあ真面目にどれを買うべきか話し合うか。
19デフォルトの名無しさん (ワッチョイ b101-j5Xv)
2021/12/29(水) 13:54:15.86ID:wwN1RbRp0 バックナンバー一覧を見つけた。
https://gist.github.com/tk3/a605e6d39d8309c7ce72e9141d461845
https://gist.github.com/tk3/a605e6d39d8309c7ce72e9141d461845
20デフォルトの名無しさん (ワッチョイ e3ad-t0J7)
2021/12/29(水) 14:22:36.20ID:Uqmbe8qT0 全部セットで1万ぐらいで買えたりしたら一々選ばんでいいのだがな。
全部読み切れないとは思うが。(てか今となっては読む価値のない記事が多いかな・・・)
全部読み切れないとは思うが。(てか今となっては読む価値のない記事が多いかな・・・)
21デフォルトの名無しさん (ワッチョイ ebad-wz/S)
2021/12/29(水) 15:02:06.61ID:ARRRFsJF0 200冊ぐらいか
11000円で買えるぞ
11000円で買えるぞ
22デフォルトの名無しさん (ワッチョイ 9db3-ass7)
2021/12/29(水) 16:45:16.84ID:TemGM5eX0 まだ読んでないkindle本あるのに・・・16冊購入(´・ω・`)
23デフォルトの名無しさん (ワッチョイ 5b66-2Otn)
2021/12/29(水) 19:45:04.56ID:vNNNNQH+0 はるか昔の bit の小話にて人間の「感覚の受信→解釈→意識・自覚」の一連の情報処理にはタイムラグがある、という「受動意識仮説」がすでに提示されていましたが
その小話が載っている bit って何年何月でしたっけ?
意識は幻想か?―「私」の謎を解く受動意識仮説
https://www.youtube.com/watch?v=Ox8gJEIe5Ac
準備運動電位
https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%B3%E3%82%B8%E3%83%A3%E3%83%9F%E3%83%B3%E3%83%BB%E3%83%AA%E3%83%99%E3%83%83%E3%83%88
その小話が載っている bit って何年何月でしたっけ?
意識は幻想か?―「私」の謎を解く受動意識仮説
https://www.youtube.com/watch?v=Ox8gJEIe5Ac
準備運動電位
https://ja.wikipedia.org/wiki/%E3%83%99%E3%83%B3%E3%82%B8%E3%83%A3%E3%83%9F%E3%83%B3%E3%83%BB%E3%83%AA%E3%83%99%E3%83%83%E3%83%88
24デフォルトの名無しさん (ワッチョイ e3ad-t0J7)
2021/12/29(水) 22:11:44.70ID:Uqmbe8qT0 検索していたらこんなページ見つけた。しかしここでの販売は6冊単位で600円なので1冊100円。
C Magazine セット販売
https://tatsu-zine.com/magazines/cmagazine
C Magazine セット販売
https://tatsu-zine.com/magazines/cmagazine
25デフォルトの名無しさん (ワッチョイ b101-j5Xv)
2021/12/29(水) 22:57:46.13ID:wwN1RbRp0 C MAGAZINE 2005・2月号 特集2 グラフ理論入門
26デフォルトの名無しさん (ワッチョイ bbb1-tOYr)
2021/12/30(木) 23:16:11.26ID:4vPJ4A600 質問
#include <stdio.h>
int main (void){
char str[100];
int i,j,n,m,a,b;
char A[100];
scanf("%d %d %s",&n, &m, A);
for(a=0;a<n;a++){
j=0;
for(b=0;b<m;b++){
scanf("%s",str);
for(i=0;str[i];i++) {
if(str[i]== *A) {
j++;
}
}
}
printf("%d\n",j);
}
return 0;
}
っていうコードを書いてみたんだけど、思うような出力が出ない
どうすればいいか教えてくださいお願い
以下問題
https://i.imgur.com/6TnIX9K.jpg
#include <stdio.h>
int main (void){
char str[100];
int i,j,n,m,a,b;
char A[100];
scanf("%d %d %s",&n, &m, A);
for(a=0;a<n;a++){
j=0;
for(b=0;b<m;b++){
scanf("%s",str);
for(i=0;str[i];i++) {
if(str[i]== *A) {
j++;
}
}
}
printf("%d\n",j);
}
return 0;
}
っていうコードを書いてみたんだけど、思うような出力が出ない
どうすればいいか教えてくださいお願い
以下問題
https://i.imgur.com/6TnIX9K.jpg
27デフォルトの名無しさん (ワッチョイ bbb1-tOYr)
2021/12/30(木) 23:17:59.44ID:4vPJ4A600 問題がうまくはれてなかった
https://i.imgur.com/e5ViyH2.jpg
https://i.imgur.com/e5ViyH2.jpg
28デフォルトの名無しさん (ワッチョイ cebb-k2DN)
2021/12/31(金) 00:46:48.51ID:TgisNlKh0 なんで、N, M, KのKを文字列として受けてるの?
29デフォルトの名無しさん (ワッチョイ 9aad-xRAa)
2021/12/31(金) 05:03:08.34ID:4SEvuYeQ0 >>26>>27
paizaの問題って公開しちゃいけないと思ったが、その問題は大丈夫なのか?
paizaの問題って公開しちゃいけないと思ったが、その問題は大丈夫なのか?
30デフォルトの名無しさん (ワッチョイ 9aad-xRAa)
2021/12/31(金) 05:08:21.26ID:4SEvuYeQ0 >>26
これって入力は全て数値だから scanf() のフォーマットは全て %d で良い筈だが、何故文字列として受け取ろうとしている個所があるのか?
これって入力は全て数値だから scanf() のフォーマットは全て %d で良い筈だが、何故文字列として受け取ろうとしている個所があるのか?
31デフォルトの名無しさん (ワッチョイ 9aad-xRAa)
2021/12/31(金) 05:14:19.43ID:4SEvuYeQ0 >>27
公開しても良い問題だったね。しかも問題のURLをコピーしたりも出来る。
だったら画像貼ってないで素直にURL貼った方が良い。スマホでWi-Fi使わず見てたりしたらパケット余計に使うことになるからね。(だから専ブラではいきなり画像をダウンロードしない設定にしてあったりして、見られる率が下がる)。
URLはこれな。
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_for_boss
公開しても良い問題だったね。しかも問題のURLをコピーしたりも出来る。
だったら画像貼ってないで素直にURL貼った方が良い。スマホでWi-Fi使わず見てたりしたらパケット余計に使うことになるからね。(だから専ブラではいきなり画像をダウンロードしない設定にしてあったりして、見られる率が下がる)。
URLはこれな。
https://paiza.jp/works/mondai/c_rank_level_up_problems/c_rank_for_boss
32デフォルトの名無しさん (ワッチョイ cebb-6/0Y)
2021/12/31(金) 09:00:32.53ID:VTzS4kbc0 とりあえずfgetsとstrtok_rを使って、
一行まるごと読み込んで、読み込んだ一行分の文字列を空白で分割して表示するだけのプログラムを書いてみたらどうかね
一行まるごと読み込んで、読み込んだ一行分の文字列を空白で分割して表示するだけのプログラムを書いてみたらどうかね
33デフォルトの名無しさん (ワッチョイ 1ab1-y6UB)
2021/12/31(金) 09:38:23.12ID:AQXYYOVd034デフォルトの名無しさん (ワッチョイ 8b01-h6Ia)
2021/12/31(金) 11:20:32.87ID:2Zk/vij+0 3[山田、山田、佐藤、田中、・・・]
7[・・・]
12[・・・]
というような表を作っておけば良いのでは?
7[・・・]
12[・・・]
というような表を作っておけば良いのでは?
35デフォルトの名無しさん (ワッチョイ 1ab1-y6UB)
2021/12/31(金) 21:31:16.10ID:AQXYYOVd036デフォルトの名無しさん (ワッチョイ 5bd2-NTeK)
2022/01/01(土) 00:39:58.19ID:gOXFnTf60 何が分からんかぐらい書きなよ
37デフォルトの名無しさん (ワッチョイ 1ab1-y6UB)
2022/01/01(土) 01:18:03.81ID:1OHQMytp0 何がわからんかも分からん
方針もわからん
方針もわからん
38デフォルトの名無しさん (ワッチョイ 42ad-hDuN)
2022/01/02(日) 13:30:00.29ID:o9R7ffl70 >>35
ソートするだけだよ。
まずは入力を配列変数に貯め込んでそれに対して並べ替えをする。
ソートする部分を自作するのが面倒なら qsort() 使えば良いんじゃないかな。
(この辺はC言語使わない方が楽かも知れないが)
ソートするだけだよ。
まずは入力を配列変数に貯め込んでそれに対して並べ替えをする。
ソートする部分を自作するのが面倒なら qsort() 使えば良いんじゃないかな。
(この辺はC言語使わない方が楽かも知れないが)
39デフォルトの名無しさん (ワッチョイ 4963-iZeD)
2022/01/03(月) 21:40:15.76ID:qalXVoDK0 入力データの1行目を読みデータ件数を取得する
データ件数にあわせて配列を確保する
(予めMax値の配列を用意するのでも構わない)
2行目から最終行まで順に読み込み、配列に格納する
問題文の財産評価ルールに従いデータをソートする
並び変わったデータを出力する
データ件数にあわせて配列を確保する
(予めMax値の配列を用意するのでも構わない)
2行目から最終行まで順に読み込み、配列に格納する
問題文の財産評価ルールに従いデータをソートする
並び変わったデータを出力する
40デフォルトの名無しさん (ワッチョイ 45bb-hDuN)
2022/01/06(木) 15:33:37.60ID:soGE7KAW0 文字配列なんですが
char str[] = { 'A', 'B', 'C' };
↑のstrにはnull文字は付加されないという認識で合ってますか?
char str[] = { 'A', 'B', 'C' };
↑のstrにはnull文字は付加されないという認識で合ってますか?
41デフォルトの名無しさん (ワッチョイ 49b3-Fu3+)
2022/01/06(木) 15:39:28.79ID:XZjVJACa0 ('A')
42デフォルトの名無しさん (ワッチョイ 4963-iZeD)
2022/01/06(木) 15:50:14.25ID:OD+qNx/80 付加される保証がない、かも
43デフォルトの名無しさん (ワッチョイ 624c-IgVz)
2022/01/06(木) 16:43:04.90ID:NntPX0Am044デフォルトの名無しさん (ワッチョイ 45bb-hDuN)
2022/01/06(木) 16:53:16.90ID:soGE7KAW045はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 063e-hDuN)
2022/01/06(木) 16:54:16.61ID:U9j/lfCJ0 >>40
付加されない。
"ABC" と書いた場合に char 四個ということになるのと違ってその場合には要素が三個の配列と解釈されることが保証される。
つまり str の型を言うなら char[3] ってことね。
ちなみに
char str[4] = {'A', 'B', 'C'};
というように書いた場合 (初期化子に書かれている要素が配列の要素数より少ない場合)
は足りない分は 0 が補われたかのように動作することが保証されるので str[3] には 0 が入ってる。
付加されない。
"ABC" と書いた場合に char 四個ということになるのと違ってその場合には要素が三個の配列と解釈されることが保証される。
つまり str の型を言うなら char[3] ってことね。
ちなみに
char str[4] = {'A', 'B', 'C'};
というように書いた場合 (初期化子に書かれている要素が配列の要素数より少ない場合)
は足りない分は 0 が補われたかのように動作することが保証されるので str[3] には 0 が入ってる。
46デフォルトの名無しさん (ワッチョイ 4963-iZeD)
2022/01/06(木) 17:05:22.56ID:OD+qNx/80 分かって使うのは良いけれど
そのまま文字列処理関数に渡すと
困った事が起きるんだよな
そのまま文字列処理関数に渡すと
困った事が起きるんだよな
47デフォルトの名無しさん (アウアウウー Saa3-lUoQ)
2022/01/10(月) 23:16:11.54ID:rD3Qvv+7a プログラミングで y = 1 / (1 / x) ってやったらどうなるの?
https://mi.5ch.net/test/read.cgi/news4vip/1641823457/
1 名前:以下、5ちゃんねるからVIPがお送りします 投稿日:2022/01/10(月) 23:04:17.072 ID:expyRxlYa
頭のいいコンパイラなら y = x にしてくれるのか?(機械語にするとき)
あっ、ちなみにインタプリタ言語やLLでは普通に t = (1 / x) を計算して y = 1 / t にするだろうそりゃ
うちは自動車メーカーだからな、使ってるのはC言語で、コンパイラは GHS MULTI っていうお前らが知らないコンパイラだよ
https://mi.5ch.net/test/read.cgi/news4vip/1641823457/
1 名前:以下、5ちゃんねるからVIPがお送りします 投稿日:2022/01/10(月) 23:04:17.072 ID:expyRxlYa
頭のいいコンパイラなら y = x にしてくれるのか?(機械語にするとき)
あっ、ちなみにインタプリタ言語やLLでは普通に t = (1 / x) を計算して y = 1 / t にするだろうそりゃ
うちは自動車メーカーだからな、使ってるのはC言語で、コンパイラは GHS MULTI っていうお前らが知らないコンパイラだよ
48デフォルトの名無しさん (ワッチョイ 7f69-2G4o)
2022/01/11(火) 01:08:21.74ID:Q8SCQHSH0 xが整数ならしてくれないよね
浮動小数点数なら
if (x==0) y=NAN; else y=x;
にしてくれるのかなぁ
浮動小数点数なら
if (x==0) y=NAN; else y=x;
にしてくれるのかなぁ
49デフォルトの名無しさん (ワッチョイ df63-lUoQ)
2022/01/11(火) 01:38:43.94ID:2o/IB+MZ0 0除算とかオーバーフローはプログラマが考慮してくれるんじゃないのかな?
50デフォルトの名無しさん (ワッチョイ 5f33-wnw2)
2022/01/11(火) 02:04:19.39ID:Wr4lWyid0 gccなら-ffast-mathを付ければy=xになるはず
ieee754準拠なら変形しない
ieee754準拠なら変形しない
51デフォルトの名無しさん (スップ Sd1f-4G0K)
2022/01/11(火) 08:27:46.21ID:3vsFi49bd 整数型なら0除算が未定義動作だから変な最適化がかかるかもしれん
x==0 で未定義動作
2回目の割り算で x!=1&&x!=-1で未定義動作
signedなら最終的にy=xになりうる
unsignedならx=-1がありえないのでy=1になるかもしれん
x==0 で未定義動作
2回目の割り算で x!=1&&x!=-1で未定義動作
signedなら最終的にy=xになりうる
unsignedならx=-1がありえないのでy=1になるかもしれん
52デフォルトの名無しさん (ワッチョイ df01-dXQO)
2022/01/11(火) 19:52:42.66ID:pJ1mRDMY0 整数前提
カッコついてるから (1/x) まで評価してソレを整数化とり得る値は符号付きで-1,0,1,<0割未定義>
その評価値が分母に 分子が 1 の演算で 符号付きで 1,-1,<0割未定義>
ほとんど0割未定義を踏みそう
カッコついてるから (1/x) まで評価してソレを整数化とり得る値は符号付きで-1,0,1,<0割未定義>
その評価値が分母に 分子が 1 の演算で 符号付きで 1,-1,<0割未定義>
ほとんど0割未定義を踏みそう
53デフォルトの名無しさん (スッップ Sd9f-W0ou)
2022/01/11(火) 20:03:51.62ID:W/ZD5G+Pd 未定義は「相手せんでいい」だからな
54デフォルトの名無しさん (アウアウキー Sa53-TNZs)
2022/01/15(土) 17:45:56.79ID:MXtcLzFoa ものにもよるがだいたいはダメだな。
printf()で%.3sみたいなフォーマットにするとかstrncpy()で文字数指定するとかなら大丈夫だろうが。何れにしてもプログラマーが意識してないといけない。
printf()で%.3sみたいなフォーマットにするとかstrncpy()で文字数指定するとかなら大丈夫だろうが。何れにしてもプログラマーが意識してないといけない。
55デフォルトの名無しさん (アウアウキー Sa53-TNZs)
2022/01/15(土) 17:47:19.94ID:MXtcLzFoa ぐはっ
リロードしても出てこなかった書き込みが沢山出てきた
リロードしても出てこなかった書き込みが沢山出てきた
56デフォルトの名無しさん (ワッチョイ e101-xpr1)
2022/01/16(日) 13:28:18.74ID:E45iSBlB0 C言語学び始めたんだけど今のところJavaで自動でやってることをCは明示的にやってるって事くらいしか分からん
Cはガベージコレクタが無いからアルゴリズムを学ぶには最適って聞いたんだがいまいち理解できん
メモリの確保と解放を任意にできることで他と違って何ができるようになる?
Cはガベージコレクタが無いからアルゴリズムを学ぶには最適って聞いたんだがいまいち理解できん
メモリの確保と解放を任意にできることで他と違って何ができるようになる?
57デフォルトの名無しさん (ワッチョイ 224c-fkY6)
2022/01/16(日) 14:08:25.07ID:H6PAG9rn0 何で?
確保した資源を解放するという当たり前のことを
自動でやってもらうことの何がそんなに大事なの?
当たり前のことがどうなっているのか把握するほうが大事だと思うけど
確保した資源を解放するという当たり前のことを
自動でやってもらうことの何がそんなに大事なの?
当たり前のことがどうなっているのか把握するほうが大事だと思うけど
58デフォルトの名無しさん (ワッチョイ a269-pjxc)
2022/01/16(日) 14:13:24.52ID:3oi0BVHh0 別に何も
Cはよく高級アセンブラと言われるくらい低級なもの
JavaはVMで動かす高級なもの
高級なものは低級なもので実現されてるのよ
Cはよく高級アセンブラと言われるくらい低級なもの
JavaはVMで動かす高級なもの
高級なものは低級なもので実現されてるのよ
59デフォルトの名無しさん (ワッチョイ 224c-fkY6)
2022/01/16(日) 14:24:28.62ID:H6PAG9rn0 マジで意味わからん
何が言いたい?
何が言いたい?
60デフォルトの名無しさん (ワッチョイ 6e24-76Y4)
2022/01/16(日) 15:21:59.54ID:sWhCnDyn0 int __cdecl main(int argc, char** argv)
この時二つの引数はどの時点で突っ込まれるのでしょうか?
引数とかって言われてもこのくらいしかわかんないです。
int add(int a,int b){return a+b;}
int main(){cout<<add(1,2);}
__cdeclあるときはmainの中身が実行される前にmain内にある二つの引数を・・・
すみませんよくわからないので教えてほしいです。
この時二つの引数はどの時点で突っ込まれるのでしょうか?
引数とかって言われてもこのくらいしかわかんないです。
int add(int a,int b){return a+b;}
int main(){cout<<add(1,2);}
__cdeclあるときはmainの中身が実行される前にmain内にある二つの引数を・・・
すみませんよくわからないので教えてほしいです。
61デフォルトの名無しさん (ワッチョイ a269-pjxc)
2022/01/16(日) 15:47:09.71ID:3oi0BVHh062デフォルトの名無しさん (ワッチョイ 6e24-76Y4)
2022/01/16(日) 15:55:52.82ID:sWhCnDyn0 >>61
ありがとうございます。
c++やり始めたばかりで、初めて__cdeclというものに出会い、
main()に引数が指定されるのも初めて見ました。
__cdeclを調べてみたのですが、よくわかりませんでした。
https://docs.microsoft.com/ja-jp/windows/win32/winsock/complete-client-code
ここのコードに出てきたやつです。
argc, argvこの二つにはどこから来た値がどのタイミングで入るのかがよくわかりません。
サーバー側の方でそれぞれの構造体や関数は一応ですが、調べました。
(ディスクリプタが良くわかんなかったけど部品の形状みたいな感じで覚えました)
ありがとうございます。
c++やり始めたばかりで、初めて__cdeclというものに出会い、
main()に引数が指定されるのも初めて見ました。
__cdeclを調べてみたのですが、よくわかりませんでした。
https://docs.microsoft.com/ja-jp/windows/win32/winsock/complete-client-code
ここのコードに出てきたやつです。
argc, argvこの二つにはどこから来た値がどのタイミングで入るのかがよくわかりません。
サーバー側の方でそれぞれの構造体や関数は一応ですが、調べました。
(ディスクリプタが良くわかんなかったけど部品の形状みたいな感じで覚えました)
63デフォルトの名無しさん (ワッチョイ 6e24-76Y4)
2022/01/16(日) 15:57:48.95ID:sWhCnDyn0 main関数が一番最初に読み込まれる関数という風に思っていて、
includeやdefineを済ませた後に一番最初にmainが実行されるのなら、
argc, argvこの二つの変数の値がどうやって決まるのかわからないのです。
includeやdefineを済ませた後に一番最初にmainが実行されるのなら、
argc, argvこの二つの変数の値がどうやって決まるのかわからないのです。
64デフォルトの名無しさん (ワッチョイ 6e24-76Y4)
2022/01/16(日) 16:00:01.63ID:sWhCnDyn0 今更なのですが、mainを実行するときにmainの中の
ローカルな空の変数(?)を宣言するだけ宣言しといてるとかですか?
ローカルな空の変数(?)を宣言するだけ宣言しといてるとかですか?
65デフォルトの名無しさん (ワッチョイ 02ad-bpA4)
2022/01/16(日) 17:07:18.79ID:rX32u5GR066デフォルトの名無しさん (ワッチョイ 02ad-bpA4)
2022/01/16(日) 17:11:54.22ID:rX32u5GR0 >>64
何を疑問に思っているのかよくわからないが、Javaとか他の言語とほぼ同じでmain()に限らず関数は呼ばれたらそのブロック内でローカル変数のメモリを確保する。(ただしCの場合は宣言だけだと初期化されない)。
何を疑問に思っているのかよくわからないが、Javaとか他の言語とほぼ同じでmain()に限らず関数は呼ばれたらそのブロック内でローカル変数のメモリを確保する。(ただしCの場合は宣言だけだと初期化されない)。
67デフォルトの名無しさん (ワッチョイ 6e24-76Y4)
2022/01/16(日) 17:30:57.83ID:sWhCnDyn068デフォルトの名無しさん (ワッチョイ e101-xpr1)
2022/01/16(日) 18:32:43.61ID:E45iSBlB069デフォルトの名無しさん (ワッチョイ eebb-YXmm)
2022/01/16(日) 19:07:47.21ID:8yj7aXgd0 純粋にアルゴリズムを学ぶことが目的ならC以外のぬるい言語のほうが良いのでは?
ただ、考えたアルゴリズムを誰よりも早く動かしたいならCは役立つと思うよ
ただ、考えたアルゴリズムを誰よりも早く動かしたいならCは役立つと思うよ
70デフォルトの名無しさん (ワッチョイ 4666-XXp5)
2022/01/16(日) 20:55:00.02ID:qRjB4bc50 純粋に、なら pascal でしょう…
pasca から C へは機械的に書き換えられるから C でもいいでしょうが
それ以上の高級言語になると、例えばソートアルゴリズムの「インプレイス」の概念も有耶無耶になってしまうので、初等アルゴリズムくらいは C で勉強したほうがいいですね
pasca から C へは機械的に書き換えられるから C でもいいでしょうが
それ以上の高級言語になると、例えばソートアルゴリズムの「インプレイス」の概念も有耶無耶になってしまうので、初等アルゴリズムくらいは C で勉強したほうがいいですね
71デフォルトの名無しさん (ワッチョイ a963-soNI)
2022/01/16(日) 20:57:35.96ID:YLrls7710 メモリーリークなどは、痛い思いをしてでも学ぶ価値はあると思う
根性論ですまん
根性論ですまん
72デフォルトの名無しさん (ワッチョイ 8202-9BXF)
2022/01/16(日) 20:58:56.40ID:uYZKVP77073デフォルトの名無しさん (ワッチョイ a963-soNI)
2022/01/16(日) 23:05:47.94ID:YLrls7710 確保と解放はDB扱うときにもあるからね
74デフォルトの名無しさん (ワッチョイ e101-xpr1)
2022/01/17(月) 00:45:04.90ID:VBYSAUJW0 rustがCの代替になる理由がメモリ関連のバグが減るからってのはどう言う事?
75はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 463e-9BXF)
2022/01/17(月) 00:56:25.55ID:jU2WrI4n0 オブジェクトは複雑に依存関係が出来る場合もある。
参照 (C 的に言えばポインタ) が残っているのにオブジェクトの寿命が尽きていればダングリングが生じてしまう。
C では寿命の管理をするのはプログラマの責任であって、無効なポインタを使った結果は未定義。
そういうのを静的にチェックしてエラーにしてくれたらありがたいなぁというのを実現したのが Rust 。
そのかわり制約の記述がちょっと面倒くさくはあるんだが、どちらにせよ依存関係の管理は C でもやってたことではあるからね。
Rust で制約を書けないようならたぶん C でもちゃんとメモリ管理できてない。
参照 (C 的に言えばポインタ) が残っているのにオブジェクトの寿命が尽きていればダングリングが生じてしまう。
C では寿命の管理をするのはプログラマの責任であって、無効なポインタを使った結果は未定義。
そういうのを静的にチェックしてエラーにしてくれたらありがたいなぁというのを実現したのが Rust 。
そのかわり制約の記述がちょっと面倒くさくはあるんだが、どちらにせよ依存関係の管理は C でもやってたことではあるからね。
Rust で制約を書けないようならたぶん C でもちゃんとメモリ管理できてない。
76デフォルトの名無しさん (ワッチョイ 25bb-9BXF)
2022/01/17(月) 02:01:49.66ID:4l2NkMK40 Ubuntuのgcc9で
size_t i = -100;
printf("%ld\n", i); // -100
と出力されたんですが、なぜsize_tで負数が扱えるんですか?
stddef.hでは
typedef long unsigned int size_t;
になってました
怖いです
size_t i = -100;
printf("%ld\n", i); // -100
と出力されたんですが、なぜsize_tで負数が扱えるんですか?
stddef.hでは
typedef long unsigned int size_t;
になってました
怖いです
77はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 463e-9BXF)
2022/01/17(月) 02:09:51.98ID:jU2WrI4n078デフォルトの名無しさん (ワッチョイ 25bb-9BXF)
2022/01/17(月) 02:13:20.92ID:4l2NkMK40 >>77
printfですかなるほど
printfですかなるほど
79デフォルトの名無しさん (ワッチョイ 25bb-9BXF)
2022/01/17(月) 02:32:10.74ID:4l2NkMK4080デフォルトの名無しさん (ワッチョイ 224c-fkY6)
2022/01/17(月) 06:34:55.39ID:J3jxIzMN081デフォルトの名無しさん (ワッチョイ e101-LjoV)
2022/01/17(月) 08:24:31.68ID:y6/SFoBh082デフォルトの名無しさん (スップ Sd82-gAe+)
2022/01/17(月) 08:24:40.15ID:6BYLlYWJd83デフォルトの名無しさん (ワッチョイ a969-fIZs)
2022/01/17(月) 13:06:53.33ID:RA8YXgQS0 サイズがおっきい側にあわせて拡張されるけど
拡張の際に符号付で拡張されるかは、拡張される側の型による でいいのかな?
左辺が size_t で 右辺が (__int16)-1 と (unsigned __int16)0xffff とで変わってくる
拡張の際に符号付で拡張されるかは、拡張される側の型による でいいのかな?
左辺が size_t で 右辺が (__int16)-1 と (unsigned __int16)0xffff とで変わってくる
84デフォルトの名無しさん (ワッチョイ 25bb-9BXF)
2022/01/17(月) 19:03:14.06ID:4l2NkMK4085デフォルトの名無しさん (ワッチョイ e101-xpr1)
2022/01/17(月) 21:09:27.93ID:VBYSAUJW086デフォルトの名無しさん (スッップ Sd22-qLbT)
2022/01/18(火) 07:11:42.98ID:gNdHIxeHd おまえさん、匿名掲示板に向いてないな
87デフォルトの名無しさん (JP 0H22-soNI)
2022/01/20(木) 11:09:59.27ID:3tZE3jDgH #defineの効果を全体に適用させる方法は無いの?
書いてあるヘッダを取り込まなくても
書いてあるヘッダを取り込まなくても
88デフォルトの名無しさん (ワッチョイ a963-soNI)
2022/01/20(木) 11:14:24.09ID:hwIlnS+y0 コマンドラインで指定
89デフォルトの名無しさん (ワッチョイ 8202-9BXF)
2022/01/20(木) 14:48:47.15ID:n7chvAG3090デフォルトの名無しさん (スップ Sd82-gAe+)
2022/01/20(木) 16:57:56.31ID:JLPh4iSLd gcc -DUNKO
とかでコンパイル時分岐させるのはよくやる
これで "#define UNKO" 相当
とかでコンパイル時分岐させるのはよくやる
これで "#define UNKO" 相当
91デフォルトの名無しさん (ガラプー KK16-KE6H)
2022/01/20(木) 17:35:43.55ID:JsGuh7u5K92デフォルトの名無しさん (ワッチョイ 82b1-IkXm)
2022/01/20(木) 18:12:26.02ID:Eie73JRu0 この問題なんで答え0なん?
難しいhttps://i.imgur.com/TelzwbB.jpg
難しいhttps://i.imgur.com/TelzwbB.jpg
93デフォルトの名無しさん (オイコラミネオ MM29-tE2C)
2022/01/20(木) 19:26:05.14ID:8odJS2DdM %rbp の値を pushq でスタックに退避して他の処理をやって popq で下ろしてきてるから最初に入ってた 0 が出てくる
94デフォルトの名無しさん (ワッチョイ 2236-soNI)
2022/01/20(木) 19:30:17.07ID:6OdGtD3E0 >92
なんか80286〜80486時代に見たアセンブラと違うorz
適当にググった予想
;レジスタ %rbp、%rbx の値をスタックにコピー
pushq %rbp
pushq %rbx
...
popq %rbx
popq %rbp
;コピーしておいた値を%rbx,%rbpに戻す
呼び出し前と同じ値になるだけだね。
なんか80286〜80486時代に見たアセンブラと違うorz
適当にググった予想
;レジスタ %rbp、%rbx の値をスタックにコピー
pushq %rbp
pushq %rbx
...
popq %rbx
popq %rbp
;コピーしておいた値を%rbx,%rbpに戻す
呼び出し前と同じ値になるだけだね。
95デフォルトの名無しさん (ワッチョイ 02ad-9BXF)
2022/01/21(金) 00:21:23.88ID:3gUGA9pL096デフォルトの名無しさん (アウアウウー Sa05-soNI)
2022/01/21(金) 06:05:07.87ID:mAmuRLc0a97デフォルトの名無しさん (アウアウウー Sa05-soNI)
2022/01/21(金) 06:13:28.12ID:mAmuRLc0a マイコン系のやつでヘッダのインクルードする前に
マクロ定義すれば使うピンを選択できるようになってるはずなんだけど
当然ながら別にコンパイルされるソースの中には効力がないと
マクロ定義すれば使うピンを選択できるようになってるはずなんだけど
当然ながら別にコンパイルされるソースの中には効力がないと
98デフォルトの名無しさん (ワッチョイ e101-9BXF)
2022/01/21(金) 07:37:29.62ID:hGKgCtXH0 「マクロ定義すれば使うピンを選択できるようになってる」メーカー提供の何かを使った
自前のライブラリで なんとかしたいと?
それライブラリの設計ミスじゃね?
自前のライブラリで なんとかしたいと?
それライブラリの設計ミスじゃね?
99デフォルトの名無しさん (ワッチョイ e1da-sTIO)
2022/01/22(土) 12:31:56.24ID:90hTt9580 日立の悪口はやめろ
100デフォルトの名無しさん (スッップ Sd7f-t4iI)
2022/01/23(日) 06:37:18.36ID:Li0julahd ライブラリはコンパイル済みだから#defineしても無駄だろ
101デフォルトの名無しさん (ワッチョイ 4710-3ipb)
2022/01/26(水) 09:09:47.27ID:iLK8Wqk90■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 小野田紀美・経済安保担当相「何か気に入らないことがあればすぐに経済的威圧をする国への依存はリスク」 ★2 [Hitzeschleier★]
- 【中国局長】両国関係に「深刻な影響」 首相発言の撤回要求 [蚤の市★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 外務省局長は無言で厳しい表情…日中の高官協議終了か 高市首相“台湾”発言で中国が強硬対応 発言撤回求めたか…★3 [BFU★]
- 【維新】吉村知事「中国人観光客だけに頼るビジネスモデル変えていかないといけない」「高市総理の発言は撤回する必要はない」 [Hitzeschleier★]
- 【社会】40代以上のおじさん・おばさんは叩いてオッケーという風潮はなぜ加速したのか [七波羅探題★]
- 日本の場合、いつも凶悪な行動に移すのは極左なんだよね。右翼はほとんどなにもしない [201193242]
- 【高市速報】日本人の3割「中国への武力行使に踏み切る必要がある」ANN世論調査 [931948549]
- 【朗報】外務省局長、中国側の要求を断固拒否。「高市さんの答弁は日本政府の立場を変えるものではないし、撤回しない」 [519511584]
- 外務省局長、よくわからないまま帰国へ [834922174]
- 【実況】博衣こよりのえちえち歌枠🧪
- 中国外務省「日中関係の悪化は高市早苗首相が原因」と名指しで強く非難。キタ━(゚∀゚)━! [153490809]
