!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
レス数が1000を超えています。これ以上書き込みはできません。
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:iLK8Wqk90102デフォルトの名無しさん (ブーイモ MM6b-KTk6)
2022/01/26(水) 09:32:17.82ID:Ppmaq+BpM メモリ管理って言っても大層なことしないけどな
単一コンテキストなら対照的にctr/dtr置けばいいし、複数コンテキストならリンクリストに繋いでrefget/refputでいいし
まあメモリ上限やフラグメント、メモリプールとかやり始めるとなかなか面倒になってくるけど…
単一コンテキストなら対照的にctr/dtr置けばいいし、複数コンテキストならリンクリストに繋いでrefget/refputでいいし
まあメモリ上限やフラグメント、メモリプールとかやり始めるとなかなか面倒になってくるけど…
103デフォルトの名無しさん (ワッチョイ e7c3-rJ2b)
2022/01/26(水) 21:10:17.71ID:z6fCP1j50 Cのサーティファイ3級の問題集で
int main(void){
int i,j;
for(i=3, j=10;i-->0 && j-->0;);
printf("iは%d.jは%d\n",i,j);
return 0;}
でiが-1 jが7になるのはどうしてでしょうか?
int main(void){
int i,j;
for(i=3, j=10;i-->0 && j-->0;);
printf("iは%d.jは%d\n",i,j);
return 0;}
でiが-1 jが7になるのはどうしてでしょうか?
104デフォルトの名無しさん (ワッチョイ a79b-uifs)
2022/01/26(水) 21:34:45.68ID:4bRyoani0105デフォルトの名無しさん (ワッチョイ 8701-4V6Q)
2022/01/26(水) 21:37:25.63ID:94PZZUq60 課題や問題としてはアリなんだろうけど、こういうコードはキモいよなぁ
106デフォルトの名無しさん (ワッチョイ 5f4c-prPq)
2022/01/26(水) 21:41:05.71ID:R08bxH5q0 ルールを知ってるか?という問題に
実用上どうのと言ってるやつ
わからんから負け惜しみにしか聞こえんぞ
実用上どうのと言ってるやつ
わからんから負け惜しみにしか聞こえんぞ
107デフォルトの名無しさん (ワッチョイ 5f69-V3GB)
2022/01/26(水) 21:44:03.93ID:zNP9VNXb0 条件に副作用がある式を書くと糞コードになるよ、って例かな
108デフォルトの名無しさん (ワッチョイ e7c3-rJ2b)
2022/01/26(水) 21:48:11.38ID:z6fCP1j50 >>104
ありがとうございます!大先輩! _(._.)_
ありがとうございます!大先輩! _(._.)_
109デフォルトの名無しさん (ワッチョイ 5f4c-prPq)
2022/01/26(水) 21:49:35.56ID:R08bxH5q0 関数ポインタを使っただけで糞コードと言い出すやつと変わらんな
110デフォルトの名無しさん (ワッチョイ 4710-3ipb)
2022/01/26(水) 22:02:05.94ID:iLK8Wqk90 偶然だけどRustがCから唯一受け継がなかったのがfor(;;)文と前置/後置の++と--だね
Rustではfor(;;)の代わりにもっとわかりやすいイテレータを使うfor inになって
イテレータ利用で++と--を使う場面が激減したため +=1と-=1で十分となった
Rustではfor(;;)の代わりにもっとわかりやすいイテレータを使うfor inになって
イテレータ利用で++と--を使う場面が激減したため +=1と-=1で十分となった
111デフォルトの名無しさん (ワッチョイ 47b3-V1vN)
2022/01/27(木) 08:19:14.30ID:1WN6znb60 #include <stdio.h>
void main(){
int a[5];
printf("%d\n", &a[0]);
printf("%ld\n", &a[1]);
printf("%d\n", &a[2]);
}
結果:
1860819792
140735054207828 ←★
1860819800
1860819796になるところがprintfで%ldにすると★のようになりました。どうして?
void main(){
int a[5];
printf("%d\n", &a[0]);
printf("%ld\n", &a[1]);
printf("%d\n", &a[2]);
}
結果:
1860819792
140735054207828 ←★
1860819800
1860819796になるところがprintfで%ldにすると★のようになりました。どうして?
112デフォルトの名無しさん (ワッチョイ 5f69-V3GB)
2022/01/27(木) 08:40:51.15ID:hGoB7Zi60 %dはint、%ldはlong
LP64環境(Linux等)なのだろう
ってか、ポインタを%dや%ldで出すのが変なんだけどね
%pで出しましょう
LP64環境(Linux等)なのだろう
ってか、ポインタを%dや%ldで出すのが変なんだけどね
%pで出しましょう
113デフォルトの名無しさん (スッップ Sd7f-WGVp)
2022/01/27(木) 09:28:40.94ID:Fupo2oO/d 挙動がわかっててやるのはともかく
なんで?になるのはギルティだな
担当教官が
なんで?になるのはギルティだな
担当教官が
114デフォルトの名無しさん (ワッチョイ 4763-IuBN)
2022/01/27(木) 11:12:04.00ID:HehBpiSx0 ++は、アセンブラコードを意識していると思うよ
115デフォルトの名無しさん (ワッチョイ 4710-3ipb)
2022/01/27(木) 12:53:54.43ID:cK3g3Gve0 >>114
大昔はコンパイラが直訳だったからね
今はコンパイラが賢いからx++でもx+=1でもx=x+1でも同じ結果
さらにアセンブラ側もレジスタを介すinc命令ではなくメモリ上に直接add 命令で1加算とか
そもそもポインタの++なら対象の型が8/16/32/64bitに応じて1/2/4/8をaddとか
だからアセンブラは今は関係ないし言語としても++がなくても影響なくなってしまってる
大昔はコンパイラが直訳だったからね
今はコンパイラが賢いからx++でもx+=1でもx=x+1でも同じ結果
さらにアセンブラ側もレジスタを介すinc命令ではなくメモリ上に直接add 命令で1加算とか
そもそもポインタの++なら対象の型が8/16/32/64bitに応じて1/2/4/8をaddとか
だからアセンブラは今は関係ないし言語としても++がなくても影響なくなってしまってる
116デフォルトの名無しさん (スプッッ Sdea-COP8)
2022/01/28(金) 07:31:33.24ID:Tsd33EHWd ポインタから次々読んでいく場合
a=*(p++);
のほうが便利
a=*(p++);
のほうが便利
117デフォルトの名無しさん (ワッチョイ a695-tVHJ)
2022/01/28(金) 07:43:00.03ID:y3i0lS6h0 格好つけるダサいやつ
118デフォルトの名無しさん (ワッチョイ 66cf-dQv6)
2022/01/28(金) 08:12:12.92ID:LR3qN1W70 一種のイディオム化しているがふつうその括弧はつけないな。
119デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 08:17:06.42ID:2Fs3iqwoM まあ、あっても悪さしないし心配なら付けるのは正しいと思う
>>118の言う通りよく見るイディオムになってるので違和感はあるけど
>>118の言う通りよく見るイディオムになってるので違和感はあるけど
120デフォルトの名無しさん (スプッッ Sdea-8U/q)
2022/01/28(金) 08:25:24.42ID:D0DTDHxMd char *src, *dst;
while(*dst++=*src++);
みたいな書き方はよく見るけど
最適化とか存在しない古いコンパイラのための書き方だよなといつも思う
while(*dst++=*src++);
みたいな書き方はよく見るけど
最適化とか存在しない古いコンパイラのための書き方だよなといつも思う
121デフォルトの名無しさん (スッップ Sd0a-fJWp)
2022/01/28(金) 09:16:27.33ID:grc2q108d いい意味の面倒くさがりだよ
122デフォルトの名無しさん (スプッッ Sdea-COP8)
2022/01/28(金) 09:23:04.37ID:Tsd33EHWd 最適化だけの問題ではないぞ
while(*dst=*src){dst++;src++;}
では変数名を変更する必要が出た場合2ヵ所づつ書き換えねばならない
→ミスにつながる
それにループが終わった後でdstとsrcは最後の要素を指しているので余計なインクリメントが要るかもしれない
while(*dst=*src){dst++;src++;}
では変数名を変更する必要が出た場合2ヵ所づつ書き換えねばならない
→ミスにつながる
それにループが終わった後でdstとsrcは最後の要素を指しているので余計なインクリメントが要るかもしれない
123デフォルトの名無しさん (ワッチョイ a510-Y4FF)
2022/01/28(金) 11:00:14.06ID:yXxqNK5h0 初心者や他言語ばっかりやってた人の誤読回避は考慮する?
124デフォルトの名無しさん (ワッチョイ eaad-dw97)
2022/01/28(金) 11:17:11.26ID:udo1auGz0 この頃発見した printf() のフォーマット
% の後に # を付けると x 変換の時に頭に 0x を付けてくれると知り、早速こう書いてみた。
printf("%#x\n", 0xab);
0xab が出力される。
これはいい、と思い16進4桁出そうとしてこう書いた。
printf("%#04x\n", x);
すると 0x は付いたがその後が2桁になった。どうやら 0x の部分の桁数も含めなければいけないようだ。仕方がないのでこう書き直す。
printf("%#06x\n", x);
やった!できた!
しかし幸せは長くは続かない。やがて x に 0 が入った状態でここを通過。以下の出力を得る。
000000
% の後に # を付けると x 変換の時に頭に 0x を付けてくれると知り、早速こう書いてみた。
printf("%#x\n", 0xab);
0xab が出力される。
これはいい、と思い16進4桁出そうとしてこう書いた。
printf("%#04x\n", x);
すると 0x は付いたがその後が2桁になった。どうやら 0x の部分の桁数も含めなければいけないようだ。仕方がないのでこう書き直す。
printf("%#06x\n", x);
やった!できた!
しかし幸せは長くは続かない。やがて x に 0 が入った状態でここを通過。以下の出力を得る。
000000
125デフォルトの名無しさん (ワッチョイ a563-Xc5L)
2022/01/28(金) 11:22:43.44ID:dRbZojn90 Cは初心者向けではないし、可読性は考慮していない
やりたい事をさっとコード化出来る人に向いている言語
やりたい事をさっとコード化出来る人に向いている言語
126デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 12:25:59.28ID:6cofCgvGM127デフォルトの名無しさん (ワッチョイ 7d01-RvMd)
2022/01/28(金) 12:32:45.35ID:obJ/SPWt0 文字列のエスケープシーケンスでバイナリ直接したんだけど、例えば"\x10"の後に"a"という文字を続けようとして"\x10a"って書くと値が大きすぎるってエラーになる。
"\x10" "a"と分割するしかない?
"\x10" "a"と分割するしかない?
128デフォルトの名無しさん (スッップ Sd0a-fJWp)
2022/01/28(金) 12:35:51.06ID:grc2q108d Cはプログラマを信頼する言語だ
悪いことをさせない制限より
自由度を優先させている
怠けるやつより進歩する者を優先するのもしかり
悪いことをさせない制限より
自由度を優先させている
怠けるやつより進歩する者を優先するのもしかり
129デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 13:19:26.12ID:vyOOr9LZM >>127
> "\x10" "a"と分割するしかない?
それしかなさげ
8進表現は最大3文字となってるから "\0123" は '\012' と '3' になるけど16進表現には桁数の制限がないので "\x10a" を1文字に解釈しようとしてエラーになる
char * の文字列は2文字、wchar_t の文字列は4文字までにすればいいと思うんだけど
> "\x10" "a"と分割するしかない?
それしかなさげ
8進表現は最大3文字となってるから "\0123" は '\012' と '3' になるけど16進表現には桁数の制限がないので "\x10a" を1文字に解釈しようとしてエラーになる
char * の文字列は2文字、wchar_t の文字列は4文字までにすればいいと思うんだけど
130デフォルトの名無しさん (ワッチョイ 7d01-RvMd)
2022/01/28(金) 13:57:54.02ID:obJ/SPWt0131はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5e3e-dw97)
2022/01/28(金) 16:18:28.78ID:hT9TavA00 >>127,129
マイクロソフトのドキュメントにも言及があるのを見つけた。
https://docs.microsoft.com/ja-jp/cpp/c-language/octal-and-hexadecimal-character-specifications?view=msvc-170
不格好だけど C はそういうもんだからしょうがないね。
マイクロソフトのドキュメントにも言及があるのを見つけた。
https://docs.microsoft.com/ja-jp/cpp/c-language/octal-and-hexadecimal-character-specifications?view=msvc-170
不格好だけど C はそういうもんだからしょうがないね。
132デフォルトの名無しさん (ワッチョイ 7d01-RvMd)
2022/01/28(金) 16:49:19.01ID:obJ/SPWt0 >>131
わざわざ調べて頂いてありがとうございます。
#define ESC_UP "0x1b" "A"
のようにマクロで逃げることにしました。
使う側では
printf("今からUP" ESC_UP "UP完了");
と少し気持ち悪いですが。
わざわざ調べて頂いてありがとうございます。
#define ESC_UP "0x1b" "A"
のようにマクロで逃げることにしました。
使う側では
printf("今からUP" ESC_UP "UP完了");
と少し気持ち悪いですが。
133デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/28(金) 17:55:44.80ID:sJpZ8snBM ESC しか使わないなら
printf("今からUP\033AUP完了");
とかでもいいかも
今更8進数かよって感じもするけど…
もしくは
#define ESC(c) "\x1b" #c
printf("今からUP" ESC(A) "UP完了");
くらいかなぁ
printf("今からUP\033AUP完了");
とかでもいいかも
今更8進数かよって感じもするけど…
もしくは
#define ESC(c) "\x1b" #c
printf("今からUP" ESC(A) "UP完了");
くらいかなぁ
134unko (ワッチョイ eab9-21ac)
2022/01/29(土) 18:53:20.85ID:cvNc/NLr0 ごめんなさい高校のc言語の課題で乱数とじゃんけん対決をして結果と手を動的配列に格納して最後にまとめて結果を表示するというやるをやってるんですが
whileループで代入した結果とその後のforループでカウントしながら表示している値が違うみたいでずっとプログラム見てても何が原因なのか分からないのでわかる方いたら教えて欲しいです.
https://github.com/unko-c/kadai/blob/main/kadai.c
whileループで代入した結果とその後のforループでカウントしながら表示している値が違うみたいでずっとプログラム見てても何が原因なのか分からないのでわかる方いたら教えて欲しいです.
https://github.com/unko-c/kadai/blob/main/kadai.c
135デフォルトの名無しさん (ワッチョイ a563-Xc5L)
2022/01/29(土) 19:18:32.81ID:mAwlWFlr0136デフォルトの名無しさん (ワッチョイ a5d2-8U/q)
2022/01/29(土) 19:22:51.55ID:wjo4lb340 44: どっから配列が出てきた
デバッガ使えばプログラムの動き見るの捗るから使え
使えないなら怪しそうなとこにひたすらprintfを埋めろ
デバッガ使えばプログラムの動き見るの捗るから使え
使えないなら怪しそうなとこにひたすらprintfを埋めろ
137デフォルトの名無しさん (ワッチョイ a563-Xc5L)
2022/01/29(土) 20:13:03.39ID:mAwlWFlr0 (&janken->man)[i] = man;
printf("man:%2d ",(&janken->man)[i]);
構造体配列のメンバーアクセス方法が間違ってる
case 0:
countDraw++;
この直後にはbreak;を入れること(全てのcase文に適用)
while(i<=j && man<=2 && man>=0) {
ここにmanを入れる意味は?
入力範囲チェックを意図するなら、ここではなく
scanf直後に、範囲外ならcontinueさせる方が良い
無駄もあるけれど、この辺を直せば動くんではないか?
printf("man:%2d ",(&janken->man)[i]);
構造体配列のメンバーアクセス方法が間違ってる
case 0:
countDraw++;
この直後にはbreak;を入れること(全てのcase文に適用)
while(i<=j && man<=2 && man>=0) {
ここにmanを入れる意味は?
入力範囲チェックを意図するなら、ここではなく
scanf直後に、範囲外ならcontinueさせる方が良い
無駄もあるけれど、この辺を直せば動くんではないか?
138unko (ワッチョイ eab9-21ac)
2022/01/29(土) 20:51:58.61ID:cvNc/NLr0139unko (ワッチョイ eab9-21ac)
2022/01/29(土) 20:54:58.88ID:cvNc/NLr0 >>136
一応whileの直前当たりでかろっくで配列確保してます
一応whileの直前当たりでかろっくで配列確保してます
140デフォルトの名無しさん (ワッチョイ a5d2-8U/q)
2022/01/30(日) 01:38:43.74ID:05k5AmyC0 44: (&janken->man)[i]
janken->man は配列ではない。
jankenは配列とみなせるポインタだが関係ない
たぶんコンパイルを通すためにこの形になってるんだろうけど
janken[i].man とするべき
janken->man は配列ではない。
jankenは配列とみなせるポインタだが関係ない
たぶんコンパイルを通すためにこの形になってるんだろうけど
janken[i].man とするべき
141デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/30(日) 07:23:03.99ID:qcbJpmhr0 ソケット関連の質問です。
この前ドメイン名取得してきたのですが、(練習のため)
webブラウザにurlを打ち込んだ時に自分のパソコン内のサーバーソケットにつなげて
htmlで”HelloWorld”と吐き出したいのですが、ドメイン名IPアドレスの紐づけ
ってどの段階でやればいいのでしょうか?
ソケットを作るときにするのかなと思っているのですがそもそもこの考え自体が間違っているでしょうか?
この前ドメイン名取得してきたのですが、(練習のため)
webブラウザにurlを打ち込んだ時に自分のパソコン内のサーバーソケットにつなげて
htmlで”HelloWorld”と吐き出したいのですが、ドメイン名IPアドレスの紐づけ
ってどの段階でやればいいのでしょうか?
ソケットを作るときにするのかなと思っているのですがそもそもこの考え自体が間違っているでしょうか?
142デフォルトの名無しさん (ワッチョイ 7d01-dw97)
2022/01/30(日) 08:48:53.30ID:v3wXXGPY0 名前-IPを関連させる(D)DNSの話であって、ほぼソケット関係無いような
143デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/30(日) 09:18:12.24ID:uPZ//xKSM >>141
> ドメイン名IPアドレスの紐づけ
紐づけと言うか解決はgetaddrinfo()でやる
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getaddrinfo.3.html
文字通りの紐づけなら>>142が言うようにDNSの話だからシステム管理者なりに聞いてくれ
てか、まずOS書いてくれ
> ドメイン名IPアドレスの紐づけ
紐づけと言うか解決はgetaddrinfo()でやる
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/getaddrinfo.3.html
文字通りの紐づけなら>>142が言うようにDNSの話だからシステム管理者なりに聞いてくれ
てか、まずOS書いてくれ
144unko (ワッチョイ eab9-21ac)
2022/01/30(日) 09:28:39.21ID:ft1MsLjp0 >>140
ありがとうございます
構造体のポインタを宣言してるのでその表現が正しそうですね
以前の課題だと構造体のメンバのポインタに配列を割り当てていたのでそれと同じように何も考えないでアロー演算子でアクセスしちゃってました
ありがとうございます
構造体のポインタを宣言してるのでその表現が正しそうですね
以前の課題だと構造体のメンバのポインタに配列を割り当てていたのでそれと同じように何も考えないでアロー演算子でアクセスしちゃってました
145デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/30(日) 10:55:49.17ID:qcbJpmhr0146デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/30(日) 11:46:45.94ID:qcbJpmhr0 VSやった・・・
147デフォルトの名無しさん (ドコグロ MMae-YJKT)
2022/01/30(日) 12:38:44.79ID:x0r2XrqVM VSに2021はない…
148デフォルトの名無しさん (ワッチョイ eaad-dw97)
2022/01/30(日) 15:19:39.90ID:wVIChEm/0 >>134
33行目と34行目は入れ替えないと構造体の配列のメモリ確保が一つ分少なくなる。
33行目と34行目は入れ替えないと構造体の配列のメモリ確保が一つ分少なくなる。
149デフォルトの名無しさん (ワッチョイ eaad-dw97)
2022/01/30(日) 15:27:39.02ID:wVIChEm/0 >>141
ソケットで connect() する前には接続先アドレスが分かっている必要があるが、
そのアドレスを調べるのは connect() 前のどの時点でやっても良い。
というか後々ソケットのconnect()で利用するかどうかとは無関係に調べて良い。
ソケットで connect() する前には接続先アドレスが分かっている必要があるが、
そのアドレスを調べるのは connect() 前のどの時点でやっても良い。
というか後々ソケットのconnect()で利用するかどうかとは無関係に調べて良い。
150デフォルトの名無しさん (ブーイモ MM3e-4vpr)
2022/01/30(日) 19:53:38.68ID:F7MhehSXM このスレの猛者が書く>>134の課題ってどんなコードになるんやろ?
151デフォルトの名無しさん (テテンテンテン MM3e-StUm)
2022/01/30(日) 21:12:41.91ID:olbUxhsiM 初級クラスであっさり書ける
152デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/31(月) 16:42:11.29ID:uGjzp6vA0 VisualStudioをつかっています。
_MSC_VER
これって(マクロ?)VSのバージョンを表す定数を返すと言うことで間違いないでしょうか?
_MSC_VER
これって(マクロ?)VSのバージョンを表す定数を返すと言うことで間違いないでしょうか?
153デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/31(月) 16:56:08.70ID:uGjzp6vA0 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif
これの意味がよくわからないのですが
(_MSC_VER)というマクロが使えて
かつ
その値が1200以上であるなら
#endifまでをコンパイルする。
# pragma onceはこのコードが乗っているファイルと同名のファイルが
既にインクルードされているならこのファイルをインクルードしないと言うことで
合っているでしょうか?
# pragma once
#endif
これの意味がよくわからないのですが
(_MSC_VER)というマクロが使えて
かつ
その値が1200以上であるなら
#endifまでをコンパイルする。
# pragma onceはこのコードが乗っているファイルと同名のファイルが
既にインクルードされているならこのファイルをインクルードしないと言うことで
合っているでしょうか?
154デフォルトの名無しさん (スップ Sdea-8U/q)
2022/01/31(月) 17:32:45.71ID:eqy2NGbAd 合ってる
https://docs.microsoft.com/ja-jp/cpp/preprocessor/predefined-macros?view=msvc-170
VisualStudioの1200以降の環境ならごにょごにょするって時に使う
アンダーバー+大文字で始まるマクロ(変数も)はコンパイラ側で定義するので
勝手に定義してはいけない
https://docs.microsoft.com/ja-jp/cpp/preprocessor/predefined-macros?view=msvc-170
VisualStudioの1200以降の環境ならごにょごにょするって時に使う
アンダーバー+大文字で始まるマクロ(変数も)はコンパイラ側で定義するので
勝手に定義してはいけない
155デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/31(月) 17:46:24.93ID:uGjzp6vA0 ありがとうございます。
メンタルやられて退職してしまったので、のんびりとブースト読んでいきます。
メンタルやられて退職してしまったので、のんびりとブースト読んでいきます。
156デフォルトの名無しさん (ワッチョイ a569-26/q)
2022/01/31(月) 18:19:27.99ID:JSQ8RYi00 自前でユニークな識別子考える必要のないインクルードガードがあるなら
そっち使ったほうが間違いないしね
そっち使ったほうが間違いないしね
157デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/31(月) 18:47:08.25ID:uGjzp6vA0 ヘッダファイルの先をたどって行ってよくわからなくなったのですが
ヘッダファイルが全部コメントアウトされているのですが
これはインクルードするときにコンパイラに無視されますよね?
boost/config/user.hppをインクルードするときに最初にインクルードしますって
コメントして書かれてあるんですけど、使うかもしれないから一応置いておいているのでしょうか?
それとも//を外してコンパイルすることが出来るのでしょうか?
ヘッダファイルが全部コメントアウトされているのですが
これはインクルードするときにコンパイラに無視されますよね?
boost/config/user.hppをインクルードするときに最初にインクルードしますって
コメントして書かれてあるんですけど、使うかもしれないから一応置いておいているのでしょうか?
それとも//を外してコンパイルすることが出来るのでしょうか?
158デフォルトの名無しさん (ワッチョイ 6624-21ac)
2022/01/31(月) 19:08:10.67ID:uGjzp6vA0 もしかしてその名前のファイルがインクルードされているかが重要で、
インクルードする中身は関係ない的な感じでしょうか?
インクルードする中身は関係ない的な感じでしょうか?
159デフォルトの名無しさん (ワッチョイ d612-piVT)
2022/02/13(日) 15:26:31.67ID:SDlFynth0 C言語において配列のリテラルはchar型(文字列)以外存在しないのでしょうか?
例えば以下のようにchar型ポインタを初期化すると、リテラル値"test"の先頭アドレスがstrに格納されると思います。
char *str = "test";
ですが、これを次のようにint型にするとエラーになってしまいます。
int arr = {10, 20, 30};
これは{10, 20, 30}が配列を表していないということでしょうか?
例えば以下のようにchar型ポインタを初期化すると、リテラル値"test"の先頭アドレスがstrに格納されると思います。
char *str = "test";
ですが、これを次のようにint型にするとエラーになってしまいます。
int arr = {10, 20, 30};
これは{10, 20, 30}が配列を表していないということでしょうか?
160デフォルトの名無しさん (ワッチョイ 12ad-rCQD)
2022/02/13(日) 15:48:05.55ID:YeyzPZAO0 初期化は普通の代入と違ってプログラムを書き易くするために特殊な表現になっていることがあると覚えておいた方が良い。
で、その int 型の初期化だが、{10, 20, 30} は int の配列変数に対する初期化ではないからエラーになる。
int arr[] = {10, 20, 30}; ならエラーにならない。
で、その int 型の初期化だが、{10, 20, 30} は int の配列変数に対する初期化ではないからエラーになる。
int arr[] = {10, 20, 30}; ならエラーにならない。
161デフォルトの名無しさん (ワッチョイ 12ad-rCQD)
2022/02/13(日) 15:49:17.27ID:YeyzPZAO0 ごめん。間違えた。
> {10, 20, 30} は int の配列変数に対する初期化ではないから
↓
> {10, 20, 30} は int の配列変数に対する初期化だから
> {10, 20, 30} は int の配列変数に対する初期化ではないから
↓
> {10, 20, 30} は int の配列変数に対する初期化だから
162はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-rCQD)
2022/02/13(日) 16:21:43.07ID:nD0XyBZB0 >>159
一応はコンパウンドリテラル (複合リテラルとも言う) というものがあってこう書けなくもない。
int *arr = (int []){1, 2, 3};
だけど文字列リテラルの生存期間が常に static なのに対してコンパウンドリテラルは
それが現れる場面に応じて static な場合と automatic な場合があるのでちょっとわかり難いね。
一応はコンパウンドリテラル (複合リテラルとも言う) というものがあってこう書けなくもない。
int *arr = (int []){1, 2, 3};
だけど文字列リテラルの生存期間が常に static なのに対してコンパウンドリテラルは
それが現れる場面に応じて static な場合と automatic な場合があるのでちょっとわかり難いね。
163デフォルトの名無しさん (ワッチョイ d612-piVT)
2022/02/13(日) 17:48:50.08ID:SDlFynth0164デフォルトの名無しさん (ワッチョイ 6fd5-iDSx)
2022/02/20(日) 00:39:00.54ID:Pf4iignB0 文字列リテラルはアドレスを持つので左辺値ですよね?
いま読んでいる参考書に右辺値だと書いてあるのですが…
いま読んでいる参考書に右辺値だと書いてあるのですが…
165デフォルトの名無しさん (ワッチョイ 6fd5-iDSx)
2022/02/20(日) 00:44:54.40ID:Pf4iignB0 というか、右辺値と左辺値の違いってアドレスを持つか持たないかの違いだと思っていたのですが
違うのでしょうか?
違うのでしょうか?
166デフォルトの名無しさん (ワッチョイ ffad-I0TE)
2022/02/20(日) 00:55:29.91ID:BGIr1fua0 え、右辺値と左辺値の違いってイコールの左辺になりえるかどうかじゃねーの?
167デフォルトの名無しさん (ワッチョイ 6fe9-9yE7)
2022/02/20(日) 01:39:48.34ID:e2U3ATgO0168デフォルトの名無しさん (ワッチョイ cf46-xQsQ)
2022/02/20(日) 06:54:02.60ID:uDi/Wll10169デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/20(日) 08:47:32.72ID:liZElF75d 書き込み可能かどうかもあるだろ
170はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/20(日) 08:56:21.85ID:eF5vmZw/0 >>164
配列は lvalue だが、ポインタに変換する規則が適用された後は lvalue ではない。
配列は lvalue だが、ポインタに変換する規則が適用された後は lvalue ではない。
171デフォルトの名無しさん (ワッチョイ 6fe9-9yE7)
2022/02/20(日) 09:33:21.73ID:e2U3ATgO0 >>168
たとえば数値リテラルや算術演算子の結果など。これらに対して "&" でアドレスを取ることはできない。
たとえば数値リテラルや算術演算子の結果など。これらに対して "&" でアドレスを取ることはできない。
172はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/20(日) 09:45:32.09ID:eF5vmZw/0 >>168
仕様上の理屈ではアドレスをもたないものが右辺値 (rvalue) なんじゃなくて右辺値がアドレスを持たないので逆なんだが……。
たとえば
int a=1;
a=2;
というように変数に代入できるが、
1=2;
という式がおかしいことは感覚的にわかるだろう。
a には 1 が入っているんだから a を評価すれば 1 になるはずなのに 1=2; と同じではない。
このとき a は a に入っている値のことであると同時に場所としての性質を持つ。
アドレスを持たないのが右辺値であるのとは対照的にアドレスを持つ (場所としての性質を持つ) のが左辺値だ。
左辺値は現れる文脈によって「値 (右辺値)」に変換される。
左辺値が値に変換される場合とされない場合が上手く使い分けられているから代入が成立するわけ。
一例をあげると以下のような式の途中経過として現れる一時的な値は右辺値であるので、
単項 & を適用できずにエラーになる。
#include <stdio.h>
int main(void) {
int a=1, b=2;
printf("%p\n", &(a+b)); // a+b の結果は rvalue なので & を適用してアドレスを知ることは出来ない
}
仕様上の理屈ではアドレスをもたないものが右辺値 (rvalue) なんじゃなくて右辺値がアドレスを持たないので逆なんだが……。
たとえば
int a=1;
a=2;
というように変数に代入できるが、
1=2;
という式がおかしいことは感覚的にわかるだろう。
a には 1 が入っているんだから a を評価すれば 1 になるはずなのに 1=2; と同じではない。
このとき a は a に入っている値のことであると同時に場所としての性質を持つ。
アドレスを持たないのが右辺値であるのとは対照的にアドレスを持つ (場所としての性質を持つ) のが左辺値だ。
左辺値は現れる文脈によって「値 (右辺値)」に変換される。
左辺値が値に変換される場合とされない場合が上手く使い分けられているから代入が成立するわけ。
一例をあげると以下のような式の途中経過として現れる一時的な値は右辺値であるので、
単項 & を適用できずにエラーになる。
#include <stdio.h>
int main(void) {
int a=1, b=2;
printf("%p\n", &(a+b)); // a+b の結果は rvalue なので & を適用してアドレスを知ることは出来ない
}
173デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/20(日) 10:14:14.54ID:bcGZeCSm0 >>168
int a;
&a //OK.これがlvalue
&1 //NG. これがrvalue
const int b = 1;
&b //OK.これもlvalue
b = 1; //NG. lvalueには書き込み可能でないものもある
int a;
&a //OK.これがlvalue
&1 //NG. これがrvalue
const int b = 1;
&b //OK.これもlvalue
b = 1; //NG. lvalueには書き込み可能でないものもある
174デフォルトの名無しさん (ワッチョイ 6fd5-NZH9)
2022/02/21(月) 00:31:16.06ID:Zv8l603i0 164です、ありがとうございます
以下の内容で理解しました
場所としての性質を持つのが左辺値、持たないものが右辺値
左辺値は場所としての性質を持つためアドレスを持つ
参考書には文字列リテラルと配列はアドレスを持つ右辺値だと書いてあります
誤植かもしれませんね
ちなみにですが関数も左辺値でしょうか?これもアドレスを持つ右辺値と書いてあります
以下の内容で理解しました
場所としての性質を持つのが左辺値、持たないものが右辺値
左辺値は場所としての性質を持つためアドレスを持つ
参考書には文字列リテラルと配列はアドレスを持つ右辺値だと書いてあります
誤植かもしれませんね
ちなみにですが関数も左辺値でしょうか?これもアドレスを持つ右辺値と書いてあります
175はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/21(月) 02:00:05.75ID:B02tltHQ0 >>174
関数については関数指示子という概念があらたに登場するのでちょっとややこしくなる。
「関数そのもの」は C では値として扱うことができないので左辺値でも右辺値でもない。
式中に関数名を書くとそれは関数ポインタに型変換されて、その関数ポインタは右辺値。
関数については関数指示子という概念があらたに登場するのでちょっとややこしくなる。
「関数そのもの」は C では値として扱うことができないので左辺値でも右辺値でもない。
式中に関数名を書くとそれは関数ポインタに型変換されて、その関数ポインタは右辺値。
176はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/21(月) 02:20:48.63ID:B02tltHQ0 ついでの補足しておくと、
普通の関数呼出しも (言語仕様の理屈の上では) 関数ポインタに変換されてから解釈されている。
有名なネタとして
(**********printf)("hello,world\n");
というように * をいくつ付けても問題なく通る。
関数指示子が関数ポインタに (暗黙に) 変換されるという規則のせいで結局は関数ポインタとして解釈されるので。
普通の関数呼出しも (言語仕様の理屈の上では) 関数ポインタに変換されてから解釈されている。
有名なネタとして
(**********printf)("hello,world\n");
というように * をいくつ付けても問題なく通る。
関数指示子が関数ポインタに (暗黙に) 変換されるという規則のせいで結局は関数ポインタとして解釈されるので。
177デフォルトの名無しさん (ワッチョイ 6fe9-9yE7)
2022/02/21(月) 15:15:43.51ID:031T4g5n0 C++だと関数も左辺値とされていて、そのことで互換性の問題が起こったりしていないので
性質の面で関数指示子は左辺値と大差無かったりする。
性質の面で関数指示子は左辺値と大差無かったりする。
178デフォルトの名無しさん (スップ Sd1f-vGHd)
2022/02/21(月) 19:49:07.11ID:gBEocJIsd 宣言された関数(のポインタ)はconst左辺値の認識でいたけどC言語だと違うのか?
typedef double(*functype)(double);
functype f;
f=sin; // 可能
sin=f; //不可能
typedef double(*functype)(double);
functype f;
f=sin; // 可能
sin=f; //不可能
179デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/21(月) 20:49:24.13ID:wtPLXwv80 関数は左辺値
ただしsizeofと代入を除きポインタに変換され
そのポインタは右辺値
ただしsizeofと代入を除きポインタに変換され
そのポインタは右辺値
180デフォルトの名無しさん (ワッチョイ 6fd5-NZH9)
2022/02/21(月) 23:36:20.06ID:Zv8l603i0 関数についてまとめると、
関数そのものは右辺値でも左辺値でもない、式中の関数名は関数ポインタに変換されて右辺値になる
(C++では関数は左辺値である)
初心者なので誤植があるとパニックになりますね…
どうもありがとうございました
関数そのものは右辺値でも左辺値でもない、式中の関数名は関数ポインタに変換されて右辺値になる
(C++では関数は左辺値である)
初心者なので誤植があるとパニックになりますね…
どうもありがとうございました
181デフォルトの名無しさん (ワッチョイ 7369-F7/t)
2022/02/22(火) 12:55:52.35ID:4nLtmRUA0 C言語の範囲内なら用語に惑わされず振る舞いだけを考えれば
そこまで混乱することはないんじゃなかろうか (>>176 の例のような変態的なのはおいといて)
C++ の ムーブセマンティクスがなかなか なかなか
そこまで混乱することはないんじゃなかろうか (>>176 の例のような変態的なのはおいといて)
C++ の ムーブセマンティクスがなかなか なかなか
182デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 13:23:00.75ID:9avL3EWo0 https://www.toyokawa.jp/
初心者すぎる質問なんだが、C言語系のループは目的に応じて1始まりにする
必要があるとブログ記事で読んだんだが、実際はどちらが良いの?
このブログにように九九を計算して配列に入れる場合に九九だから1始まりで計算して、配列へのアクセスは−1する。
今までやっていたようにゼロからループして、計算するときに+1して、配列にはそのままアクセス。
現場だと何も考えずにゼロからループし、目的に応じてオフセットさせていたけど特にコードレビューで突っ込まれた経験も無いので。
初心者すぎる質問なんだが、C言語系のループは目的に応じて1始まりにする
必要があるとブログ記事で読んだんだが、実際はどちらが良いの?
このブログにように九九を計算して配列に入れる場合に九九だから1始まりで計算して、配列へのアクセスは−1する。
今までやっていたようにゼロからループして、計算するときに+1して、配列にはそのままアクセス。
現場だと何も考えずにゼロからループし、目的に応じてオフセットさせていたけど特にコードレビューで突っ込まれた経験も無いので。
183デフォルトの名無しさん (ワッチョイ 8368-jp9+)
2022/02/22(火) 13:27:08.07ID:XXijF8a20 プログラミング初心者なんやが、まずC言語の何からすればいいんや。
初歩的な質問ですまない。
初歩的な質問ですまない。
184デフォルトの名無しさん (ワッチョイ 8368-jp9+)
2022/02/22(火) 13:27:08.07ID:XXijF8a20 プログラミング初心者なんやが、まずC言語の何からすればいいんや。
初歩的な質問ですまない。
初歩的な質問ですまない。
185デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 13:27:23.55ID:9avL3EWo0 >>182
あと、比較するときも無意味だから<=や>=は使わずに<、>を使えば良いって指示は受けたことがある。
for(i=10;i<=20; じゃなく
for(i=10;i<21; とすれば文字が少なくなり間違えが減ると言ってた。
ただ、ブログをみると、21と言う数字は唐突なので10から20までループさせるのなら <=20を使うべきと書かれている。
どちらが正しいのか?
あと、比較するときも無意味だから<=や>=は使わずに<、>を使えば良いって指示は受けたことがある。
for(i=10;i<=20; じゃなく
for(i=10;i<21; とすれば文字が少なくなり間違えが減ると言ってた。
ただ、ブログをみると、21と言う数字は唐突なので10から20までループさせるのなら <=20を使うべきと書かれている。
どちらが正しいのか?
186デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/22(火) 13:33:05.20ID:1CIJj7s5d それC言語の仕様じゃなくて現場の慣例に従うべきだろ
187デフォルトの名無しさん (ワッチョイ 7369-F7/t)
2022/02/22(火) 13:44:24.82ID:4nLtmRUA0 変数を定数と比較するなら変数を右辺にもってこいとかの
文法外のコーディングルールは郷に従え としか
文法外のコーディングルールは郷に従え としか
188デフォルトの名無しさん (スプッッ Sd1f-SN5Z)
2022/02/22(火) 14:17:27.30ID:KAmBmnWqd >>184
とりあえずHello world
これがなにか分からない場合は
カーニハン&リッチー著のプログラミング言語C
という本を何とかして手に入れろ
文庫本サイズの小さな本だが
Cの発明者が書いている本で
基本はこれでOK
とりあえずHello world
これがなにか分からない場合は
カーニハン&リッチー著のプログラミング言語C
という本を何とかして手に入れろ
文庫本サイズの小さな本だが
Cの発明者が書いている本で
基本はこれでOK
189デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 15:24:23.33ID:9avL3EWo0 >>186
まあ、そうする
まあ、そうする
190デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 15:29:17.78ID:9avL3EWo0 C言語の構造体ってメモリーの割当って全てで保証されているのだろうか?
ビッグエンディアン、リトリエンディアンで異なるのは分かるのだが
全てリトル、Windowsで動くとして同じなのだろうか?
昔、アプリケーションの保存データを一つの構造体に収納し、それをそのままバイナリーとして
ディスクに出力していたのだが当時から気持ち悪く思っていた。
公式ドキュメントで保証でもされていれば良いのだが。
ビッグエンディアン、リトリエンディアンで異なるのは分かるのだが
全てリトル、Windowsで動くとして同じなのだろうか?
昔、アプリケーションの保存データを一つの構造体に収納し、それをそのままバイナリーとして
ディスクに出力していたのだが当時から気持ち悪く思っていた。
公式ドキュメントで保証でもされていれば良いのだが。
191デフォルトの名無しさん (ワッチョイ 7369-F7/t)
2022/02/22(火) 16:43:25.69ID:4nLtmRUA0 実行ファイルがそのままで、実行環境のOSのを行き来するならまず変わらんだろう
ソースをコンパイルしなおした結果として同じ配置になるかどうかは使ってるコンパイラ次第
ソースを別のコンパイラでコンパイルした時も同じ配置になるかどうかは使ってるコンパイラ次第
どんな場合においてもなんとかポータビリティを維持しようとするとテキスト化する羽目になる
ソースをコンパイルしなおした結果として同じ配置になるかどうかは使ってるコンパイラ次第
ソースを別のコンパイラでコンパイルした時も同じ配置になるかどうかは使ってるコンパイラ次第
どんな場合においてもなんとかポータビリティを維持しようとするとテキスト化する羽目になる
192デフォルトの名無しさん (ワッチョイ 8363-f428)
2022/02/22(火) 17:47:31.50ID:HCzuhowO0 まあ
{
char ch0;
int int0;
}
みたいになるときは
{
char ch0;
char dummy[3];
int int0;
}
って入れてるよ俺は
{
char ch0;
int int0;
}
みたいになるときは
{
char ch0;
char dummy[3];
int int0;
}
って入れてるよ俺は
193デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/22(火) 17:53:48.17ID:FDkOG5bL0 [3]というマジックナンバーがイヤ
詰め物の不定がイヤならmemsetでゼロクリアすれば済むこと
詰め物の不定がイヤならmemsetでゼロクリアすれば済むこと
194デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/22(火) 17:57:32.88ID:FDkOG5bL0 エンディアンを合わせて読み書きなんて朝飯前だし
構造体を渡された関数は中でfread/fwriteを1回じゃなきゃいけないなんて縛りはナンセンス
構造体の中に構造体があるときは、その構造体の読み書きも関数化しておけば何も問題はない
構造体を渡された関数は中でfread/fwriteを1回じゃなきゃいけないなんて縛りはナンセンス
構造体の中に構造体があるときは、その構造体の読み書きも関数化しておけば何も問題はない
195デフォルトの名無しさん (ワッチョイ a301-mA98)
2022/02/22(火) 18:33:22.53ID:XFNPZHqh0 パディングの距離、何バイトでアライメントされるかを制御したいとなると
コンパイラ依存の #pragma に頼るわ
コンパイラ依存の #pragma に頼るわ
196デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 18:40:08.78ID:9avL3EWo0 >>191
10人規模のプロジェクトだったが、構造体のデータをそのままファイル出力してた。
特にパフォーマンスを求められる部分でも無かったので、自分でマッピングして出力したかったのだが、現状できているからと言うことで却下。
ただ、気持ち悪さは残る。案の定といってもよいが、Sun Sparkが混在したときは当然問題が出たらしい。
関係ないが、そのソフトハウスって、OracleにInsertした順序でselect出来るって信じているところもあった。
実際、そうなるが気持ち悪い。
10人規模のプロジェクトだったが、構造体のデータをそのままファイル出力してた。
特にパフォーマンスを求められる部分でも無かったので、自分でマッピングして出力したかったのだが、現状できているからと言うことで却下。
ただ、気持ち悪さは残る。案の定といってもよいが、Sun Sparkが混在したときは当然問題が出たらしい。
関係ないが、そのソフトハウスって、OracleにInsertした順序でselect出来るって信じているところもあった。
実際、そうなるが気持ち悪い。
197デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 18:52:09.49ID:9avL3EWo0 C言語で冗長化と称して同じ内容を複数の変数に書き込みバックアップをするってプロジェクトが有ったが、意味有ったのだろうか?
今でも、変数ってプログラマが意図して変更しない限り値が変わることは無いし、仮に変わったとしたらもうプログラマレベルでは対処できない問題だと思う。
あと、そんな可能性があったらループ変数だってループ中に意図せずに変わると思うが。
(ハイレベルな一般的なアプリで、OS保護下で動くもの、DMAとか他ハードウェアとメモリを共有するような低レベルな話ではない)
今でも、変数ってプログラマが意図して変更しない限り値が変わることは無いし、仮に変わったとしたらもうプログラマレベルでは対処できない問題だと思う。
あと、そんな可能性があったらループ変数だってループ中に意図せずに変わると思うが。
(ハイレベルな一般的なアプリで、OS保護下で動くもの、DMAとか他ハードウェアとメモリを共有するような低レベルな話ではない)
198デフォルトの名無しさん (ワッチョイ cfda-+91V)
2022/02/22(火) 19:02:11.86ID:pG+m+rIk0 昔、組込みやってた時は全部ではないけど特に動作中に変化すると致命的な箇所は同内容を複数の変数に保存していたことはある
製品評価でノイズ試験やサージ試験おこなっていると意外にマイコン内のメモリのデータはよく化ける
製品評価でノイズ試験やサージ試験おこなっていると意外にマイコン内のメモリのデータはよく化ける
199デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/22(火) 19:03:01.04ID:6JePgkF30 疑うことを知らずに一生を終える人は幸せである
200デフォルトの名無しさん (アウアウエー Sadf-8pl8)
2022/02/22(火) 19:21:24.62ID:IWqq52SNa >>197,198
素朴な疑問なんたが、それ不一致起こしてた場合どっちが正しいと判断してたんだ?
素朴な疑問なんたが、それ不一致起こしてた場合どっちが正しいと判断してたんだ?
201はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/22(火) 19:32:40.86ID:xH13yj0x0 >>190
言語仕様としての保証はあんまりないよ。
ABI (Application Binary Interface) と呼ばれる規格を作って同じアーキテクチャでは同じレイアウトにする通例はあるし、
既存のライブラリと組み合わせられないと不都合だからだいたいのコンパイラはそれに従ってる。
x86 (64ビットも含む) については歴史的事情で Windows はマイクロソフトが決めた ABI があって、
Windows 意外 (Linux とか BSD とか) はおおよそ System V ABI を採用してる。
で、自分が作るプログラムがターゲットにする範囲 (開発環境・実行環境) で ABI が共通ならそれでいいし、
違うなら適当に切り分けて対処するとかでも問題ない。
まあ結果的に問題なかったとしても検証せずにやってたんだとしたら良くはないけどな。
言語仕様としての保証はあんまりないよ。
ABI (Application Binary Interface) と呼ばれる規格を作って同じアーキテクチャでは同じレイアウトにする通例はあるし、
既存のライブラリと組み合わせられないと不都合だからだいたいのコンパイラはそれに従ってる。
x86 (64ビットも含む) については歴史的事情で Windows はマイクロソフトが決めた ABI があって、
Windows 意外 (Linux とか BSD とか) はおおよそ System V ABI を採用してる。
で、自分が作るプログラムがターゲットにする範囲 (開発環境・実行環境) で ABI が共通ならそれでいいし、
違うなら適当に切り分けて対処するとかでも問題ない。
まあ結果的に問題なかったとしても検証せずにやってたんだとしたら良くはないけどな。
202デフォルトの名無しさん (ワッチョイ cfda-+91V)
2022/02/22(火) 19:47:53.56ID:pG+m+rIk0203はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/22(火) 19:51:42.70ID:xH13yj0x0 PC でもデータが化けることは思ったよりも頻繁に起きているらしい。
データ破損を検出して補正する ECC と呼ばれる機構を持ったメモリもあるんだが、
コンピュータの値下げの圧力と信頼性の高い現代のメモリでは ECC は必要ないという論から ECC を付けてない機種が増えてきてる。
でもリーナスは ECC は要るにきまってんだろという感じの発言をしてる。
https://linux.srad.jp/story/21/01/05/0240202/
実際問題として化けるんだよ、化けたことを検出したり補正したりする機構がいたるところに入ってるから
アプリケーションからは気にせずに済んでるだけで……。
データ破損を検出して補正する ECC と呼ばれる機構を持ったメモリもあるんだが、
コンピュータの値下げの圧力と信頼性の高い現代のメモリでは ECC は必要ないという論から ECC を付けてない機種が増えてきてる。
でもリーナスは ECC は要るにきまってんだろという感じの発言をしてる。
https://linux.srad.jp/story/21/01/05/0240202/
実際問題として化けるんだよ、化けたことを検出したり補正したりする機構がいたるところに入ってるから
アプリケーションからは気にせずに済んでるだけで……。
204デフォルトの名無しさん (ガラプー KKff-Ix28)
2022/02/22(火) 20:27:20.57ID:x7wwxQmEK >>192
よく見かける手法だな。ただ、後からメンバー追加したのか以下のようなアホな事になっている件もたまにあるw
{
char ch0;
char ch1;
char dummy[3];
int int0;
}
よく見かける手法だな。ただ、後からメンバー追加したのか以下のようなアホな事になっている件もたまにあるw
{
char ch0;
char ch1;
char dummy[3];
int int0;
}
205デフォルトの名無しさん (テテンテンテン MM7f-IjML)
2022/02/22(火) 20:27:50.66ID:affn0mKeM 「メルキオール (MELCHIOR)」「バルタザール (BALTHASAR)」
「カスパー (CASPER)」 という3つの独立したシステムによる
合議制をとっていた。
「カスパー (CASPER)」 という3つの独立したシステムによる
合議制をとっていた。
206デフォルトの名無しさん (アウアウエー Sadf-8pl8)
2022/02/22(火) 20:56:32.44ID:IWqq52SNa207デフォルトの名無しさん (ドコグロ MMff-bFjU)
2022/02/22(火) 21:00:04.31ID:mN73zrRIM >>204
コンパイラによるけど警告レベル上げれば検出できるぞ
コンパイラによるけど警告レベル上げれば検出できるぞ
208デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 21:02:51.52ID:9avL3EWo0209デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 21:10:15.11ID:9avL3EWo0 >>203
>>アプリケーションからは気にせずに済んでるだけで……
なのでOSで保護された上で動くアプリケーションはデータの冗長化は必要ないのでは?
というか、データを冗長化するという方針で作られたシステムもいわゆる神経質という
設計思想があり。 データ認定?された物は3重化されて変数に保管されるが
ループのi,j,kや一時的にデータを取得するaと言った変数は多重化されていなかった。
仮に変数の冗長化が重要だと言うことになった場合。なぜデータ認定されたものだけ冗長化され
ループ変数は冗長化せずに単体で使うのかって部分に気持ち悪さを感じる。
どの変数も「平等に」食らう可能性はあると思うから。
>>アプリケーションからは気にせずに済んでるだけで……
なのでOSで保護された上で動くアプリケーションはデータの冗長化は必要ないのでは?
というか、データを冗長化するという方針で作られたシステムもいわゆる神経質という
設計思想があり。 データ認定?された物は3重化されて変数に保管されるが
ループのi,j,kや一時的にデータを取得するaと言った変数は多重化されていなかった。
仮に変数の冗長化が重要だと言うことになった場合。なぜデータ認定されたものだけ冗長化され
ループ変数は冗長化せずに単体で使うのかって部分に気持ち悪さを感じる。
どの変数も「平等に」食らう可能性はあると思うから。
210デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 21:17:01.78ID:9avL3EWo0 >>201
「変数をバイナリーでファイルに出力する」と聞いてリーダーに求めたのは
メモリーマップ。当然、準備しているものだと思っていた。
ただ、メモリーマップなど知らないし意味も分からない、サンプルを見てくれ?
という指示だった。
バイナリーでのデータ交換をするのにメモリーマップを定めないことに関しては今でも気持ち悪さを感じている。
「変数をバイナリーでファイルに出力する」と聞いてリーダーに求めたのは
メモリーマップ。当然、準備しているものだと思っていた。
ただ、メモリーマップなど知らないし意味も分からない、サンプルを見てくれ?
という指示だった。
バイナリーでのデータ交換をするのにメモリーマップを定めないことに関しては今でも気持ち悪さを感じている。
211はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/22(火) 21:27:02.48ID:xH13yj0x0 >>209
> OSで保護された上で動くアプリケーションは
OS では解決できない。 だからリーナスはインテルにマジムカという話。
変数を何か所にも増やすのが意味ないというのは、それはそう。
どうやったってどうにもならんので考えるだけ無駄。
職人技でどうにかできるような規模の小さな組み込み分野ならともかく、
複雑高度なコンピュータで低レイヤが信頼できないなら信頼できない箇所にコストをかけて改善すべき。
> OSで保護された上で動くアプリケーションは
OS では解決できない。 だからリーナスはインテルにマジムカという話。
変数を何か所にも増やすのが意味ないというのは、それはそう。
どうやったってどうにもならんので考えるだけ無駄。
職人技でどうにかできるような規模の小さな組み込み分野ならともかく、
複雑高度なコンピュータで低レイヤが信頼できないなら信頼できない箇所にコストをかけて改善すべき。
212デフォルトの名無しさん (アウアウエー Sadf-8pl8)
2022/02/22(火) 21:56:15.32ID:ntDF8W1ma213デフォルトの名無しさん (スップ Sd1f-vGHd)
2022/02/22(火) 21:59:25.84ID:fFHtSmjBd >>209
ハードウェアエラーが原因ならプログラムの実行バイナリも平等に化ける可能性あるよね
ハードウェアエラーが原因ならプログラムの実行バイナリも平等に化ける可能性あるよね
214デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/22(火) 22:00:17.02ID:FDkOG5bL0215デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/22(火) 22:07:46.87ID:6JePgkF30 アポロ計画だったか、3台のコンピュータに計算させて多数決で決めてたな
216デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/22(火) 22:18:57.41ID:6JePgkF30 それとCのようにロジックが追え、時間さえあれば
人でも答えが出せる場合ではなく、
AIシステムのようにブラックボックス化していると、
複数台による合議制もあるかも知れない
人でも答えが出せる場合ではなく、
AIシステムのようにブラックボックス化していると、
複数台による合議制もあるかも知れない
217はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/22(火) 22:31:59.79ID:xH13yj0x0 深層学習ってニューラルネットワークを多層構造にしたモデルなんだよね。
AI の仕組みの中に (重みづけされた) 多数決が既に組み込まれていると言えなくもない。
AI の仕組みの中に (重みづけされた) 多数決が既に組み込まれていると言えなくもない。
218デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 23:00:22.43ID:9avL3EWo0219デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/22(火) 23:05:44.26ID:9avL3EWo0 >>213
そう思う。本当に冗長化するなら、ストアされているプログラムも
カウンタ変数も信頼性は平等だと思う。
レジスタに収納されてればより信頼性が上がると言われそうだが、
ループ変数だってメモリに退避されていることが多いから信頼性は同じだと思う。
そう思う。本当に冗長化するなら、ストアされているプログラムも
カウンタ変数も信頼性は平等だと思う。
レジスタに収納されてればより信頼性が上がると言われそうだが、
ループ変数だってメモリに退避されていることが多いから信頼性は同じだと思う。
220デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/22(火) 23:14:07.01ID:AiPUeoxY0 >>211
> OS では解決できない。 だからリーナスはインテルにマジムカという話。
Xeon 使えばいいだけだろ
サーバーによってはECCだけじゃなくてミラーリングも使えたりするし
https://jp.fujitsu.com/platform/server/primergy/technical/pcserver-description/memory.html
> OS では解決できない。 だからリーナスはインテルにマジムカという話。
Xeon 使えばいいだけだろ
サーバーによってはECCだけじゃなくてミラーリングも使えたりするし
https://jp.fujitsu.com/platform/server/primergy/technical/pcserver-description/memory.html
221はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/22(火) 23:21:36.39ID:xH13yj0x0222デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/22(火) 23:34:31.66ID:AiPUeoxY0223はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/23(水) 00:08:53.35ID:o4j3GXmb0 >>222
安ければデメリットもあるのもしょうがないといえばしょうがない話ではあるけどね。
デメリットはない (あるいは十分に小さい) と言い張ってインテルは ECC なし製品を推し進めたけど、
実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。
安ければデメリットもあるのもしょうがないといえばしょうがない話ではあるけどね。
デメリットはない (あるいは十分に小さい) と言い張ってインテルは ECC なし製品を推し進めたけど、
実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。
224デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/23(水) 07:03:47.68ID:6oKgGQho0 >>223
> 実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。
そうじゃないと言ってるけど実際どれくらいあるんだ?
仕事で上に書いたようなサーバーでシステム構築してたけどメモリーエラーなんて見たことないし
> 実際にはそうじゃないことがわかったとなれば文句を言いたくもなるだろう。
そうじゃないと言ってるけど実際どれくらいあるんだ?
仕事で上に書いたようなサーバーでシステム構築してたけどメモリーエラーなんて見たことないし
225デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/23(水) 08:03:17.13ID:FxZT1eeTd >>210
WindowsでのBITMAPFILEHEADERとか主要なファイルヘッダの構造は全部構造体で定義されてるから気にしたことないなあ
ダミーパディング込みで
気になるなら定義部分を見てみるといい
余計なパディング入れないプラグマとかも使われているはず
WindowsでのBITMAPFILEHEADERとか主要なファイルヘッダの構造は全部構造体で定義されてるから気にしたことないなあ
ダミーパディング込みで
気になるなら定義部分を見てみるといい
余計なパディング入れないプラグマとかも使われているはず
226デフォルトの名無しさん (アウアウウー Sae7-9yE7)
2022/02/23(水) 08:27:04.99ID:JOM9/OKLa227デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/23(水) 08:44:18.35ID:FxZT1eeTd228デフォルトの名無しさん (ドコグロ MMff-bFjU)
2022/02/23(水) 09:11:50.93ID:pngadACwM リーナスもMSもECCメモリーがーって騒ぐ前にやることがあるだろw
229デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 09:34:02.54ID:vebGIGPQ0230デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 09:37:11.21ID:vebGIGPQ0 >>225
https://docs.microsoft.com/ja-jp/windows/win32/api/wingdi/ns-wingdi-bitmapfileheader
これでファイルの読み書きしても良いんだ。
MS公式文書で書かれているということで、今まで引っかかっているところが解消した感じ。
https://docs.microsoft.com/ja-jp/windows/win32/api/wingdi/ns-wingdi-bitmapfileheader
これでファイルの読み書きしても良いんだ。
MS公式文書で書かれているということで、今まで引っかかっているところが解消した感じ。
231デフォルトの名無しさん (ワッチョイ 8310-EcOz)
2022/02/23(水) 09:42:44.82ID:hrDKDc9G0 昔宇宙線だかなんだかがメモリデータを破壊するとかそんな記事を読んだ気がそこはかとなく(ry
232デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/23(水) 10:39:13.43ID:6oKgGQho0 >>229
万が一書き換わってても気付かない事の方が多いだろ
万が一書き換わってても気付かない事の方が多いだろ
233デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/23(水) 10:44:14.42ID:6oKgGQho0 >>231
アルファ線とか宇宙線中性子とか
https://www.hitachi.co.jp/rd/glossary/jp_so/sofutoeraa.html
メモリーを心配するならFPGAも心配しろよ
https://www.hitachi.co.jp/rd/sc/story/softerr/index.html
アルファ線とか宇宙線中性子とか
https://www.hitachi.co.jp/rd/glossary/jp_so/sofutoeraa.html
メモリーを心配するならFPGAも心配しろよ
https://www.hitachi.co.jp/rd/sc/story/softerr/index.html
234はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/23(水) 11:25:09.62ID:o4j3GXmb0235デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/23(水) 12:31:11.32ID:v1sPphh80 Windowsならメモリーエラーでブルースクリーンになるよな
236デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/23(水) 12:39:56.12ID:stefKGxD0 ならねえよ
「何となく調子悪い」PCがmemtest86で問題発覚はあるけどな
「何となく調子悪い」PCがmemtest86で問題発覚はあるけどな
237デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/23(水) 12:54:35.71ID:FxZT1eeTd 再現性がまったくないから
端子の接触不良か熱暴走で片付けられると思う
端子の接触不良か熱暴走で片付けられると思う
238デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 13:35:22.91ID:vebGIGPQ0 Cで変数を分散するって話は人生で一回だけ。
それ以降は、どの言語でも意図して変更していなければ絶対に変数は変わらないという事を前提にコーディングしている。
でも、問題は無い。
それ以降は、どの言語でも意図して変更していなければ絶対に変数は変わらないという事を前提にコーディングしている。
でも、問題は無い。
239デフォルトの名無しさん (ワッチョイ ff02-9L8B)
2022/02/23(水) 13:42:56.07ID:n4QLtIZ70 eccメモリ積んだサーバー使えばいいじゃん
240デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 13:44:37.23ID:vebGIGPQ0 >>231
ケースをシールドしたり、信号ラインを絶縁して対応していると思われる。
ケースをシールドしたり、信号ラインを絶縁して対応していると思われる。
241デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/23(水) 16:46:51.15ID:vebGIGPQ0 while(1){
a(&x);
if(x==1) break;
b();
}
ってコーディングを禁止している案件もあった。break文じゃなく、しっかりと条件式がfalseになるように書けとのことだった。
ただ、このやり方って入門書にも書いてある普通な方法だと思うけど。ループの中間くらいで抜けたいときはその後の処理をifで実行できないようにしていたので可読性は悪かった。
もちろん continue も封印されていた。
while(x!=1){
a(&x);
if(x!=1) b();
}
みたいに
a(&x);
if(x==1) break;
b();
}
ってコーディングを禁止している案件もあった。break文じゃなく、しっかりと条件式がfalseになるように書けとのことだった。
ただ、このやり方って入門書にも書いてある普通な方法だと思うけど。ループの中間くらいで抜けたいときはその後の処理をifで実行できないようにしていたので可読性は悪かった。
もちろん continue も封印されていた。
while(x!=1){
a(&x);
if(x!=1) b();
}
みたいに
242デフォルトの名無しさん (ワッチョイ ff02-9L8B)
2022/02/23(水) 16:49:25.49ID:n4QLtIZ70 whileの中で関数呼べばいいじゃん
243デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/23(水) 17:07:12.12ID:FxZT1eeTd inline関数ならオーバーヘッドもないはずだしな
それで何が聞きたいんじゃ?
それで何が聞きたいんじゃ?
244デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/23(水) 17:08:55.71ID:6oKgGQho0 俺なら
a(&x);
while(x == 1){
b();
a(&x);
}
って書くかな
a(&x);
while(x == 1){
b();
a(&x);
}
って書くかな
245デフォルトの名無しさん (ワッチョイ a301-mA98)
2022/02/23(水) 19:16:45.48ID:Q2o1N4Td0 理不尽だと思われるコーディングルールも歴史があってそうなってたりするから
長いものに巻かれるしかない
長いものに巻かれるしかない
246デフォルトの名無しさん (ワッチョイ 83d2-vGHd)
2022/02/23(水) 22:15:21.75ID:PssNo99E0 俺なら嫌味のように
{
bool need_break=false;
while(... && !need_break){
//前半処理
if(!(need_break=...)){
//後半処理
}
}
}
とでも書くかな
{
bool need_break=false;
while(... && !need_break){
//前半処理
if(!(need_break=...)){
//後半処理
}
}
}
とでも書くかな
247デフォルトの名無しさん (ブーイモ MMa7-8pl8)
2022/02/23(水) 22:33:27.74ID:ek+gncWLM for (;;)
なんでみんなこれ使わないの?
なんでみんなこれ使わないの?
248デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/23(水) 22:36:06.79ID:v1sPphh80 泣いてるみたいで悲しい
249デフォルトの名無しさん (ブーイモ MM7f-8pl8)
2022/02/23(水) 23:22:31.05ID:lJym8p+qM あと制御文の括弧前にスペース入れるのは少数派なんだろうか…
250はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/23(水) 23:26:41.88ID:o4j3GXmb0 個々の場面で不適切でもチーム全員が適切に判断できないようなら
比較的マシそうな側に統一するルールにも合理性はある。
それとか「わからんかったらこうしとけ」みたいな口伝が
拡大解釈されていったりするのもありそうな話だ。
比較的マシそうな側に統一するルールにも合理性はある。
それとか「わからんかったらこうしとけ」みたいな口伝が
拡大解釈されていったりするのもありそうな話だ。
251はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 00:03:57.70ID:KIw+63Ii0252はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 00:21:21.22ID:KIw+63Ii0 >>247
それが無限ループになるというのが読み取り難いからではないかな。
初期化やインクリメントの部分を省略したら単に何もしないのだろうと類推できるけど、
省略された条件式が真に判定されるのか偽に判定されるのかというのは例外規則として知ってなきゃわからない。
慣用句 (イディオム) と化してるので慣れてしまうと普通に読めるけど、
while(1) のほうが明示的な分だけわかりやすいのかもしれない。
それが無限ループになるというのが読み取り難いからではないかな。
初期化やインクリメントの部分を省略したら単に何もしないのだろうと類推できるけど、
省略された条件式が真に判定されるのか偽に判定されるのかというのは例外規則として知ってなきゃわからない。
慣用句 (イディオム) と化してるので慣れてしまうと普通に読めるけど、
while(1) のほうが明示的な分だけわかりやすいのかもしれない。
253デフォルトの名無しさん (アウアウイー Sa07-6/qx)
2022/02/24(木) 00:27:00.80ID:DLFV0+Dqa 関数っぽさをなくすためにスペース空ける方がいいと思う
254デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 02:22:52.59ID:9O+r6lMKM255はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 02:31:22.55ID:KIw+63Ii0 >>254
ループとしては無限ループにしておいて break で抜けるような構造は良くないといえばあんまり良くないんだけど、
そうは言っても存在する以上はその場合を明示的に表せるような構文があると便利ってのも確かで、
そのあたりは設計思想の違いとしか言いようがないよな……。
ループとしては無限ループにしておいて break で抜けるような構造は良くないといえばあんまり良くないんだけど、
そうは言っても存在する以上はその場合を明示的に表せるような構文があると便利ってのも確かで、
そのあたりは設計思想の違いとしか言いようがないよな……。
256デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 02:44:45.66ID:9O+r6lMKM >>255
その構造が良くないというのは自分も昔はそうだったが単なる思い込みだと気付いたw
さらにwhileは先頭でif break、do whileは最後でif breakしているだけであるし
ある程度計算を進めてから途中でようやくif breakできないとwhileだと困ることもloop式で解決された
さらにループを抜けてbreakしたい時は値を返したい時が多いからloop文ではなくloop式が非常に便利
その構造が良くないというのは自分も昔はそうだったが単なる思い込みだと気付いたw
さらにwhileは先頭でif break、do whileは最後でif breakしているだけであるし
ある程度計算を進めてから途中でようやくif breakできないとwhileだと困ることもloop式で解決された
さらにループを抜けてbreakしたい時は値を返したい時が多いからloop文ではなくloop式が非常に便利
257ハノン ◆QZaw55cn4c (NZ 0Hdf-864q)
2022/02/24(木) 05:13:17.42ID:SpBJKMB7H >>251,249
K&R2 では if や for, switch の後にはスペースを入れますね
私は基本的に K&R2 に沿って書きますが、関数の始まりを示す { は例外的に宣言に続けて書きます
int main() {
return 0;
}
K&R2 では if や for, switch の後にはスペースを入れますね
私は基本的に K&R2 に沿って書きますが、関数の始まりを示す { は例外的に宣言に続けて書きます
int main() {
return 0;
}
258デフォルトの名無しさん (ワッチョイ ff01-bFjU)
2022/02/24(木) 06:47:25.50ID:iDpw9I/70259デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 06:53:42.23ID:MBzpszCI0 俺もマジックナンバーがないほうが好き
260デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/24(木) 08:03:43.62ID:PbuedMT9d #define FOREVER for(;;)
261デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 08:20:28.13ID:MBzpszCI0 >>260
こう書くとbreakやgotoが嘘つきに見えるな
こう書くとbreakやgotoが嘘つきに見えるな
262デフォルトの名無しさん (ワッチョイ 8310-iDSx)
2022/02/24(木) 11:30:55.34ID:XK2EQ9NF0 #define DEATH_MARCH for(;;)
263デフォルトの名無しさん (スップ Sd1f-vGHd)
2022/02/24(木) 12:02:15.07ID:7WoYZRJzd #define DISALLOW_BREAK for(;;)
#define FOREVER for(;;)
DISALLOW_BREAK FOREVER{
...
if(...)break;
}
#define FOREVER for(;;)
DISALLOW_BREAK FOREVER{
...
if(...)break;
}
264デフォルトの名無しさん (ワッチョイ 83b1-hSEA)
2022/02/24(木) 17:23:09.91ID:bIfpVEhP0 >>261
正規表現ライブラリとか使って、複雑な制御を見えなくするのも一つの手かも?
自分のところのbreak continueは嫌がられるが、他所なら見えないので。
結局機械語になれば、中でGoto(jmp)しまくっているわけなので。
正規表現ライブラリとか使って、複雑な制御を見えなくするのも一つの手かも?
自分のところのbreak continueは嫌がられるが、他所なら見えないので。
結局機械語になれば、中でGoto(jmp)しまくっているわけなので。
265デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:32:25.81ID:MBzpszCI0 jmp命令は構造化プログラミングで問題視されるgotoとは違うぞ
266はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 17:36:24.61ID:KIw+63Ii0 抽象度が違う話だからなぁ。
267デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:36:30.96ID:MBzpszCI0 ダイクストラは「高級言語では」という限定をつけてgotoを問題視していたのであって
アセンブラや機械語に出てくる分岐命令はあの議論の対象外だ
アセンブラや機械語に出てくる分岐命令はあの議論の対象外だ
268はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-mA98)
2022/02/24(木) 17:38:56.51ID:KIw+63Ii0269デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/24(木) 17:43:46.24ID:MBzpszCI0270デフォルトの名無しさん (ワッチョイ 8363-9yE7)
2022/02/24(木) 17:44:23.55ID:5fQRd2wi0 SQL埋め込みのC言語goto使いまくってた
271デフォルトの名無しさん (スップ Sd1f-f428)
2022/02/24(木) 17:50:29.88ID:PbuedMT9d K&Rでもgotoは醜いが使わないと余計な変数や不自然な構造が必要になるからねーとクギをさしてる
272デフォルトの名無しさん (アウアウエー Sadf-8pl8)
2022/02/24(木) 17:53:57.59ID:8VCxJpwXa コードが80x120に収まれば俺はgotoなんて気にしない
273デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/24(木) 17:55:30.50ID:9O+r6lMKM >>271
そういうのもloop式導入で解決するから導入しよう
そういうのもloop式導入で解決するから導入しよう
274デフォルトの名無しさん (ワッチョイ a301-tnbg)
2022/02/24(木) 21:02:28.06ID:Qe3Dm4uv0 抜け出しgotoは分かる
飛び込みgotoはつらい
飛び込みgotoはつらい
275デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/25(金) 13:00:32.72ID:2Pynziee0 構造化プログラミングを盲信する気は毛頭ないが
それは違うぞ
抜けだしであろうが飛び込みであろうが
ループの端に設定された条件に従わない分岐は
ダイクストラが問題視する対象だ
それは違うぞ
抜けだしであろうが飛び込みであろうが
ループの端に設定された条件に従わない分岐は
ダイクストラが問題視する対象だ
276デフォルトの名無しさん (ワッチョイ cf2c-hSEA)
2022/02/25(金) 13:19:00.10ID:Eg3DloqN0 MISRA-C でも、制御パスを変える、
goto, 複数return, (多重脱出からの?)break/continue などは禁止。
だから、ループ内で、やたらとフラグを持ち回る
でも、Linux では、
早期return, goto でエラー処理をまとめたりするから、フラグを持ち回らない
goto, 複数return, (多重脱出からの?)break/continue などは禁止。
だから、ループ内で、やたらとフラグを持ち回る
でも、Linux では、
早期return, goto でエラー処理をまとめたりするから、フラグを持ち回らない
277デフォルトの名無しさん (ワントンキン MMc7-8oZ9)
2022/02/25(金) 13:35:54.50ID:aDhOSI3tM278デフォルトの名無しさん (ワッチョイ cf95-kcXy)
2022/02/25(金) 16:58:20.86ID:2Pynziee0 >>277
おまえさんもダイクストラみたいに学会誌に投稿したら?
おまえさんもダイクストラみたいに学会誌に投稿したら?
279デフォルトの名無しさん (アウアウウー Sa2f-g6h8)
2022/03/01(火) 11:42:38.47ID:iGO9Qf02a break;とかcontinue;はいいの?
280デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/01(火) 12:15:17.30ID:qblu1Z+O0 switch以外のbreakは制御式にない条件での脱出
continueは違う
continueは違う
281デフォルトの名無しさん (テテンテンテン MM86-lzB5)
2022/03/01(火) 12:24:02.66ID:QP0iZO8FM どこでもexit
282デフォルトの名無しさん (ワッチョイ 03b1-65e0)
2022/03/03(木) 13:53:35.02ID:2Y1y5HDI0 グローバル変数禁止プロジェクトがあって、固定値が全てリテラルでばらまかれていたので、仕様変更でチーム員は苦労してた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
自分の担当箇所は謎関数を一つ作り、そこから値を得ていた。
283デフォルトの名無しさん (ブーイモ MMea-S9sh)
2022/03/03(木) 14:05:48.79ID:o7MH0vY5M グローバル変数禁止なのになんで定数まで禁止なんだ
284デフォルトの名無しさん (ワッチョイ ca01-+tM1)
2022/03/03(木) 14:16:38.79ID:bgg8zGG60285デフォルトの名無しさん (スッップ Sdea-6y7D)
2022/03/03(木) 14:18:42.95ID:iO+E/Lewd マクロは使わんのか?
ただの素人のスパゲッティだな
ただの素人のスパゲッティだな
286デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 15:16:49.50ID:dDnSjvDO0 センス悪いやつがいるせいで
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
必要なものまで制限されるんだよな
ロクに精査もせずに横暴な制限を作るやつらも
センス悪いやつの一員
287デフォルトの名無しさん (ブーイモ MM86-S9sh)
2022/03/03(木) 15:48:11.59ID:NNobhPIrM 昔グローバル変数はなるべく使わないようにねってお願いしたら、グローバル変数が関数内のstatic変数になって返ってきて状況悪化させしまったことを思い出した…
依頼は正確でないとな
依頼は正確でないとな
288デフォルトの名無しさん (ワッチョイ 06e9-g6h8)
2022/03/03(木) 15:52:02.14ID:nN/xu0Sn0 >>287
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
望んだ改善ではないにしてもグローバル変数よりは関数内static変数のほうがマシで、悪化はしてないのでは?
289デフォルトの名無しさん (ワッチョイ 073e-8W3/)
2022/03/03(木) 15:55:02.85ID:7Ur+27OW0 必要なものが制限されるのは腹立たしいだろうけど、
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
現実にセンスないやつが今、現場にいる状況で比較的マシにしようと思ったら制限も已むなし。
290デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 15:55:56.96ID:9ZWmTo8BM 君は関数内static変数の破壊力を知らない
291デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:02:36.91ID:dDnSjvDO0 int *just_function(void)
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
{
static int not_global_variable;
return ¬_global_variable;
}
struct common_variables
{
int fool;
int jerk;
int idiot;
};
struct common_variables *a_function(void)
{
struct common_variables cv;
return &cv;
}
292デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:03:41.51ID:dDnSjvDO0 static struct common_variables cv;
だった
笑い処でミスってどうするw
だった
笑い処でミスってどうするw
293はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 073e-8W3/)
2022/03/03(木) 16:09:12.32ID:7Ur+27OW0 やりたいことは分割統治なんだよね。 プログラムを機能単位ごとに分割して部品にしたいの。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
部品を束ねた部品があって、それを束ねて大きな部品にして……という綺麗に階層的な依存関係にしたいの。
色んなところからアクセスされるものがあるのが目に付くと綺麗に分割できてねぇなあと感じるという話であって
言語機能としての「グローバル変数」を使わないようにすれば綺麗になるというわけではない。
294デフォルトの名無しさん (テテンテンテン MM86-+tM1)
2022/03/03(木) 16:17:38.32ID:9ZWmTo8BM グローバル変数一つ新規に作るのに何枚も書類を書かないといけないプロジェクトがあって、
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
その時は一つだけ管理テーブルという名称の構造体を作成登録した。
その後は必要に応じて構造体にメンバーを追加した。
追加の場合には許可がいらない。
295デフォルトの名無しさん (ワッチョイ 9e95-yS/3)
2022/03/03(木) 16:23:37.12ID:dDnSjvDO0 俺のジョークそのまんまかw
296デフォルトの名無しさん (スップ Sdea-PHKB)
2022/03/03(木) 16:28:52.42ID:rhQumEoNd int型のグローバル変数が2つあればvoid*アドレスを分割して突っ込める
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
291みたいなstructへのポインタ突っ込んどきゃやりたい放題だよやったね!
297デフォルトの名無しさん (ワッチョイ 5f69-ibFl)
2022/03/04(金) 08:30:10.22ID:kn6yruMU0 C++ の singleton クラスと
関数内static から戻ってくるのも 似たようなものになる?のか?
関数内static から戻ってくるのも 似たようなものになる?のか?
298デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:20:18.71ID:RiucPZY70 ref class SampleCls
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
{
internal:
property int A[int]
{
int get(int n)
{
int value = n * 100;
return value;
}
void set(int index,int n)
{
}
}
};
SampleCls objを実体化させた後に
s = s + "n= " + obj.A[i]+ "\n";
を5回繰り返したら0,100,200,300,400になったのですが
0に100をかけると100になるのでしょうか?
299デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:24:03.50ID:RiucPZY70 A[i]の値がどんなふうに決まっているのか知りたいのですがよくわかりません
どなたか教えていただければ幸いです。
どなたか教えていただければ幸いです。
300デフォルトの名無しさん (ワッチョイ 0f24-84yK)
2022/03/06(日) 14:42:22.06ID:RiucPZY70 すみません、解決しましたSet()とget()の動きをちゃんと理解していなかったことが
原因でした。
原因でした。
301デフォルトの名無しさん (ブーイモ MM7f-asIB)
2022/03/06(日) 16:10:19.16ID:g5zD4gJoM まず、自分が何の言語で書いてるか理解したらもっと早く答えが手に入ると思うよ…
302デフォルトの名無しさん (ワッチョイ 9fad-Djfv)
2022/03/07(月) 04:27:05.03ID:t70FSnsj0 ダイクストラって名前を聞くたびに大工が屋根の上で仕事をしている姿が浮かんでしまう
303デフォルトの名無しさん (ワッチョイ 0f95-UGCc)
2022/03/07(月) 06:18:54.97ID:RhJCMKRm0 キャスバルレム大工ん
304デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 12:29:53.09ID:Ki3D6geg0 アルゴリズム系でかっこいい名前はダイクストラとラグランジュ
305デフォルトの名無しさん (スプッッ Sdbf-dovv)
2022/03/08(火) 14:05:47.68ID:0fUGXJlMd 構造化プログラミングはアルゴリズムじゃない
306デフォルトの名無しさん (ワッチョイ cb10-JlPT)
2022/03/08(火) 20:30:43.45ID:Ki3D6geg0 ダイクストラ法な
307デフォルトの名無しさん (ワッチョイ 0f46-svpa)
2022/03/09(水) 01:38:28.31ID:D4BPG9+J0 大屑虎
308デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 20:38:39.30ID:kXeE1dtK0 malloc,freeを多用すると断片化でいずれOSが落ちるってのは
Windows11やLinuxでも起きる問題ですか?
Windows11やLinuxでも起きる問題ですか?
309デフォルトの名無しさん (ワッチョイ 0f63-23wO)
2022/03/10(木) 20:42:14.86ID:4CPsM6xv0 使い方間違えていればOS問わず不味いだろ
310デフォルトの名無しさん (ワッチョイ 6bb3-Ff7g)
2022/03/10(木) 21:22:58.66ID:kXeE1dtK0 正しく使っていれば問題ないということでOK?
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
なんか、正しく使っていても断片化が発生するみたいなのを聞いたもので
311デフォルトの名無しさん (エムゾネ FFbf-+wPv)
2022/03/10(木) 21:47:12.08ID:0nt+oQbsF 昔のCPUならともかく
MMUを使ってるOSなら断片化しないだろ
MMUを使ってるOSなら断片化しないだろ
312デフォルトの名無しさん (ドコグロ MM0f-8Z4y)
2022/03/10(木) 22:40:12.59ID:iIk3GhqfM MMUのページサイズとmalloc/freeの管理サイズは全然違うぞ
313デフォルトの名無しさん (ワッチョイ efe9-6iqn)
2022/03/11(金) 14:14:05.09ID:Yxv/2BSs0 >>308,310
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
断片化は発生するだろうけど、そのせいでOSが落ちるなんてことは最近のOSではたぶん無い。
断片化によるメモリ確保失敗によってアプリが落ちることはあるかもしれない。
「正しく使っていれば」という条件で質問されても何をもって正しいと言うのか示してもらわないと答えようがない。
314デフォルトの名無しさん (ワッチョイ 1bd7-UGCc)
2022/03/11(金) 21:28:24.41ID:FGXUCKCr0 1MiB以上と未満で挙動を分けているmallocはよく見かけるね
315デフォルトの名無しさん (ブーイモ MM8f-URqd)
2022/03/11(金) 21:50:14.89ID:o502mXGNM >>308
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
実装を知っていれば意図的にフラグメントは起こせる、という程度で気にしなければ普通起きない
316デフォルトの名無しさん (ワッチョイ 82a6-QV3l)
2022/03/12(土) 00:08:34.44ID:NOu0XfGq0317デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 01:41:51.18ID:NpUzvYny0 >>308
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
普通のアプリ動かしているだけなのにOSが落ちるとすると、そのOSは何かおかしい。OSにバグがあるのではないか?
318デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 13:07:51.07ID:aRaeBtiY0 普通に車を運転してたら事故った
車に欠陥があるはず
車に欠陥があるはず
319デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/12(土) 15:32:14.60ID:XvQpUkSW0 九州のタクシー暴走事故はプリウスのせいだと思っている。
320デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 16:34:06.63ID:aRaeBtiY0 プリウスの制御プログラムを書いた人、ここにいませんか?
321デフォルトの名無しさん (ドコグロ MM95-koMU)
2022/03/12(土) 18:00:40.48ID:WugjRoTQM 仮にいたとしても名乗り出ないだろw
322デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/12(土) 18:10:20.20ID:kaM/Ypx70 >>318
当然、疑うことだね
当然、疑うことだね
323デフォルトの名無しさん (ワッチョイ 6ebb-easS)
2022/03/12(土) 18:29:57.19ID:0pfFD5zX0 ドライバーの単体テストは実施してたんですか?
324デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/12(土) 23:53:51.20ID:NpUzvYny0 >>318
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
それは今回の話には当てはまらない。普通のアプリを動かしていたらアプリが落ちた、だったら当てはまる。
今回の話を喩えるなら普通の車を運転していたら道路が陥没したみたいになる。OSの方が落ちたんだから。
325デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/12(土) 23:56:33.44ID:aRaeBtiY0 そうか?
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
池袋事故では最後まで車の欠陥を主張してたぞ
普通にって表現は、あくまでも本人の主観だからな
326デフォルトの名無しさん (ワッチョイ ee46-NFVq)
2022/03/13(日) 00:27:55.58ID:8TmiOcWs0 上級国民は医師に運転を止められていた欠陥アプリなので、譬喩に用いるには特殊すぐる。
327デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/13(日) 00:30:40.49ID:giayljWn0 事故起こした奴って自分が原因だと思ってないだろう
328デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/13(日) 06:05:08.20ID:g8VV1ENe0 常に自分を疑え、なんて根性論めいた主張には興味ないし
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
弁護士に譲歩的なことを言うなと指示されて本当に思っていることと違うことを陳述するのもこの議論とは関係ない
329デフォルトの名無しさん (スッップ Sda2-Rvba)
2022/03/13(日) 06:10:49.96ID:kdm08K3Td330デフォルトの名無しさん (ワッチョイ b901-jCaJ)
2022/03/13(日) 11:39:10.82ID:HQz48e8Z0 >>308
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
malloc,freeを多用すると
解放し忘れが多くなり
メモリが断片化して
新規メモリが確保できなくなってエラー吐いてんのに
エラーチェックもせずにポインターにアクセス
そしてプログラムが落ちる
さらにOSを巻き込んでPCごと落ちる
でも今時のOSは生半可なことでは巻き込まれない
331デフォルトの名無しさん (ワッチョイ 69d2-nn6q)
2022/03/13(日) 17:40:39.42ID:5qwn5s+60 解放し忘れ(メモリリーク)と断片化は別概念
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
16byteを4回確保した後に1回目と3回目で確保したメモリだけ解放すると、
合計32byte空いてるのに飛び地になってるから32byte領域として扱えない
332デフォルトの名無しさん (アウアウエー Sa8a-0txc)
2022/03/13(日) 22:53:37.11ID:A2eUK16/a malloc/freeを多用すると解放忘れが多くなるものなのか?
333デフォルトの名無しさん (ワッチョイ 82ad-WCXV)
2022/03/14(月) 01:27:18.72ID:OOlFm33n0 そりゃプログラムがおかしいだけ
334デフォルトの名無しさん (ワッチョイ ee63-9pEf)
2022/03/14(月) 10:46:27.63ID:z8DyGqYY0 C言語ではなくスクリプトだが、
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
無限にSubdirを掘り続ける奴書いて動かしたら、OS落ちたな
XPだったが
335デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/14(月) 11:00:21.69ID:GQP59fXj0 fork爆弾みたいな実験か
336デフォルトの名無しさん (スプッッ Sd02-nn6q)
2022/03/14(月) 16:40:21.91ID:LP3GQSIPd OS名はあえて書かないが
Visual C++のmallocで1GBを256回確保しただけで落ちたな
Visual C++のmallocで1GBを256回確保しただけで落ちたな
337デフォルトの名無しさん (ワッチョイ 82ad-6g0K)
2022/03/14(月) 17:46:29.09ID:OOlFm33n0 Windowsは昔から落ちやすい印象
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
なんというか、OS自体もなんか少しユルい上にみんなして色んなドライバ作って組み込むもんだから余計に落ち易くなってんじゃないかな。
338デフォルトの名無しさん (ワッチョイ 6910-pPbi)
2022/03/14(月) 17:51:09.33ID:L/zgcwZ50 Win98で512バイトぐらいをいくつmalloc出来るかと試したことがあって、
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
10万回ちかくでNULL返した・・・いや、1万回だったかな?。
とりあえずOSもアプリも落ちなかった。
339デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:09:49.60ID:uaV7elHUM340デフォルトの名無しさん (ワッチョイ 69b3-9blg)
2022/03/15(火) 21:12:16.49ID:oV08M4Ak0 あなたの基準では世界中アホだらけやな
341デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:19:55.67ID:uaV7elHUM 一部のバカに対して言ってる
マジで::printfなんて使ってるやつなんて滅多にいない
マジで::printfなんて使ってるやつなんて滅多にいない
342デフォルトの名無しさん (オイコラミネオ MM95-W3oF)
2022/03/15(火) 21:22:08.63ID:uaV7elHUM 誰も使ってない表記法使うアホのせいで改めて調べないといけなくなる
使われてないから敢えて教科書に書かれてないし教科書に書かれてないんだから知らないやつが多数派ってことがわからんバカ
使われてないから敢えて教科書に書かれてないし教科書に書かれてないんだから知らないやつが多数派ってことがわからんバカ
343デフォルトの名無しさん (オッペケ Sr91-6sol)
2022/03/16(水) 00:50:46.44ID:HRRT9pv8r 知らなくて馬鹿にされたのかな?辛かったね、大変だったね。カワイソウニ(´;ω;`)ウッ…
344デフォルトの名無しさん (ワッチョイ e5d7-JxOY)
2022/03/16(水) 05:23:40.43ID:sZ1wd+Ly0 有効範囲解決演算子はスレ違いだぞ
345デフォルトの名無しさん (オッペケ Sr91-9aVa)
2022/03/16(水) 13:21:40.48ID:IYkrMFX0r Cに namespace の概念ってある?
346デフォルトの名無しさん (スプッッ Sd02-nn6q)
2022/03/16(水) 13:45:31.87ID:EozDCnXud gotoラベル
構造体のtag名
構造体のメンバ名
それ以外
という概念のnamespaceならある
typedef struct A{int A;} A;
int main(){ A: return 0;}
で4種類のAを区別できるというだけで、ns::A とかの話ではないが
構造体のtag名
構造体のメンバ名
それ以外
という概念のnamespaceならある
typedef struct A{int A;} A;
int main(){ A: return 0;}
で4種類のAを区別できるというだけで、ns::A とかの話ではないが
347デフォルトの名無しさん (オッペケ Sr91-9aVa)
2022/03/16(水) 14:57:34.41ID:IYkrMFX0r ああ
それぞれで固有の識別子を記憶する空間があるから ぱっとみの文字が衝突しててもセーフ
という概念か
コンパイラ記述するときにめんどくさそうね
文意からこっちのテーブルを参照すべきとか
それぞれで固有の識別子を記憶する空間があるから ぱっとみの文字が衝突しててもセーフ
という概念か
コンパイラ記述するときにめんどくさそうね
文意からこっちのテーブルを参照すべきとか
348デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 11:24:46.11ID:fvSihUDg0 初歩的な質問ですが、
b = a++;
という式はbにaの値を代入してからaをプラス1しますが、
演算子の優先度を考えると、++が優先度高く、=は右優先です
優先度の高い++をしてから代入するように感じるのですが
そうならない理由をご教示ください
b = a++;
という式はbにaの値を代入してからaをプラス1しますが、
演算子の優先度を考えると、++が優先度高く、=は右優先です
優先度の高い++をしてから代入するように感じるのですが
そうならない理由をご教示ください
349デフォルトの名無しさん (ワッチョイ 99e4-9HQ1)
2022/03/19(土) 11:57:41.89ID:VgIBj69P0 a++が返す値は、aをインクリメントする前の値だからだよ
350デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 12:07:43.36ID:X795CU5ld b=a++;
のインクリメントが実行されるのは式を評価した後
のインクリメントが実行されるのは式を評価した後
351デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 12:40:35.63ID:fvSihUDg0 返信ありがとうございます
演算子の優先度を調べると++が=より優先度が高いはずです
式の処理は優先度の高い演算子から処理されると理解しています
そうすると、++が先に実行された後で=(代入)が実行されてもおかしくないと
考えたのですが、どこに誤りがあるのでしょうか?
演算子の優先度を調べると++が=より優先度が高いはずです
式の処理は優先度の高い演算子から処理されると理解しています
そうすると、++が先に実行された後で=(代入)が実行されてもおかしくないと
考えたのですが、どこに誤りがあるのでしょうか?
352デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/19(土) 12:53:26.53ID:UXt2lmR80 そういう時のために
++i
i++
ちゃんと2種類の書き方が用意されてるんだよ
++i
i++
ちゃんと2種類の書き方が用意されてるんだよ
353デフォルトの名無しさん (ワッチョイ 7be9-noGs)
2022/03/19(土) 12:55:08.49ID:d0FibUHe0354デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 12:56:54.66ID:X795CU5ld 演算子の結合順位と副作用完了点の概念は別
というか b=a;a=a+1; を1文で書くためにa++ 周りのの仕様を特別扱いして実現してる
というか b=a;a=a+1; を1文で書くためにa++ 周りのの仕様を特別扱いして実現してる
355デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/19(土) 13:30:03.55ID:fvSihUDg0 返信ありがとうございます
++、--の場合は、前置、後置で
式の評価順が通常と異なると覚えました
式の評価順を理論から理解していないので
忘れてしまって失敗するかもしれませんが、
そのうち定着すると思っています
++、--の場合は、前置、後置で
式の評価順が通常と異なると覚えました
式の評価順を理論から理解していないので
忘れてしまって失敗するかもしれませんが、
そのうち定着すると思っています
356デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/19(土) 15:38:29.74ID:CZI3HevE0 よくわからない場合や使うと分かり辛くなる場合は使わないで冗長な書き方した方が良いかも知れない。
使わなくても最近のコンパイラは最適化掛ければ適当にうまいことやって最終的に作られるコードは同じになる可能性が高いと思う。
使わなくても最近のコンパイラは最適化掛ければ適当にうまいことやって最終的に作られるコードは同じになる可能性が高いと思う。
357デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:00:25.72ID:mw5TX/57a b = a++;
の右辺を評価した結果は aの元の値で、副作用として aのアドレスにあるオブジェクトをインクリメントしているのでは
代入されるのは aの内容でなく、アドレスを持たない値で
の右辺を評価した結果は aの元の値で、副作用として aのアドレスにあるオブジェクトをインクリメントしているのでは
代入されるのは aの内容でなく、アドレスを持たない値で
358デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:03:51.29ID:mw5TX/57a a++ は右辺値で、 ++a は左辺値
359デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/19(土) 17:12:51.80ID:X795CU5ld どっちも右辺値としないとまずい
int main(){
int a=0;
int* p;
p=&(++a); // コンパイルエラー
p=&(a++); // こっちも
}
int main(){
int a=0;
int* p;
p=&(++a); // コンパイルエラー
p=&(a++); // こっちも
}
360デフォルトの名無しさん (アウアウウー Sa5d-oCcm)
2022/03/19(土) 17:42:57.61ID:mw5TX/57a そうだね、失礼しました
361デフォルトの名無しさん (ワッチョイ 11f0-B0ie)
2022/03/19(土) 17:50:05.80ID:nPptgbtB0 : BassClass(
std::format (IdPrefix, index, numBank)),(
std::format (NamePrefix, ++index, numBank))
ちょうどこんな感じのコンストラクタでラッパーするコード書いてたんだけど
インクリメントしてない方までつられて増えちゃうんだよね
C++のコード片でスマソン
std::format (IdPrefix, index, numBank)),(
std::format (NamePrefix, ++index, numBank))
ちょうどこんな感じのコンストラクタでラッパーするコード書いてたんだけど
インクリメントしてない方までつられて増えちゃうんだよね
C++のコード片でスマソン
362デフォルトの名無しさん (スッップ Sd33-kk3k)
2022/03/19(土) 18:11:19.38ID:8Fsv/onud d = ++a + b-- + --c + a++;
この結果は
++a;
--c;
d = a + b + c + a;
b--;
a++;
だよね
実際はこんな書き方しないほうがいいがw
この結果は
++a;
--c;
d = a + b + c + a;
b--;
a++;
だよね
実際はこんな書き方しないほうがいいがw
363デフォルトの名無しさん (ワッチョイ 7be9-noGs)
2022/03/19(土) 18:25:12.86ID:d0FibUHe0364デフォルトの名無しさん (ドコグロ MMbd-zKmY)
2022/03/19(土) 18:39:08.49ID:Uza1/JxDM365デフォルトの名無しさん (ワッチョイ 8bbb-35g2)
2022/03/19(土) 19:05:15.57ID:9SMEw2CG0 以下のような関数がインラインで実行されてるだけで、評価自体は++が先に行われてるんでないの?知らんけど
int inc(int* a) {
int ret = *a;
*a = *a + 1;
return ret;
}
int inc(int* a) {
int ret = *a;
*a = *a + 1;
return ret;
}
366デフォルトの名無しさん (アウアウウー Sa5d-63z5)
2022/03/19(土) 19:10:54.79ID:fJWxsuK3a 引数の評価順なんてCPUでも変わるだろ。
367デフォルトの名無しさん (ワッチョイ 8161-2DeC)
2022/03/19(土) 20:25:22.26ID:hj0ig94x0 未定義動作警察だ!
未定義動作の動作は定義されていないのでコンパイラは何をしてもいい
> d = ++a + b-- + --c + a++;
このコードの場合、
++a;--c;d=...; b--;a++;相当のコードを吐いてもいいし、
tmp=a;a=tmp+1;--c;d=...; b--;a=tmp+1; 相当のコードを吐いてもいい。
大抵は未定義動作がないことを前提に最適化をかけるが。
極端なことを言えば、d=42としてもいい。
この文の見た目の動作は定義されていないから
未定義動作の動作は定義されていないのでコンパイラは何をしてもいい
> d = ++a + b-- + --c + a++;
このコードの場合、
++a;--c;d=...; b--;a++;相当のコードを吐いてもいいし、
tmp=a;a=tmp+1;--c;d=...; b--;a=tmp+1; 相当のコードを吐いてもいい。
大抵は未定義動作がないことを前提に最適化をかけるが。
極端なことを言えば、d=42としてもいい。
この文の見た目の動作は定義されていないから
368デフォルトの名無しさん (ワッチョイ fb43-0XB4)
2022/03/20(日) 00:26:15.18ID:dAApHicf0 fgetsのファイル終了・エラー時の戻り値がNULLなのはなぜですか?
他の入出力関係の関数の戻り値はEOFになっています
いま入出力の勉強をしてるんですが、関数の引数や戻り値が少しずつ違うので覚えるのが難しいです
使っていくうちに覚えていくものでしょうか?
他の入出力関係の関数の戻り値はEOFになっています
いま入出力の勉強をしてるんですが、関数の引数や戻り値が少しずつ違うので覚えるのが難しいです
使っていくうちに覚えていくものでしょうか?
369デフォルトの名無しさん (ワッチョイ 8bbb-35g2)
2022/03/20(日) 00:53:13.92ID:tmhbCmKs0 細かな仕様はよく使うもの以外は毎度調べるよ
まあCの関数は数が少ないから全部覚えてるって人も少なくないかも
まあCの関数は数が少ないから全部覚えてるって人も少なくないかも
370デフォルトの名無しさん (ワッチョイ 8b63-noGs)
2022/03/20(日) 00:57:50.69ID:rKPZjyik0 よく使う関数の戻り値調べると面白いぞ
printfが何を返しているかとか、それは何故なのかとか
戻り値を使っている人を見たことがないけれど
printfが何を返しているかとか、それは何故なのかとか
戻り値を使っている人を見たことがないけれど
371はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d93e-bSSa)
2022/03/20(日) 01:37:41.92ID:u4Grkyrm0 >>361
こういう場合については未定義ではないが未規定の動作が含まれる。
副作用完了点の間で同一のオブジェクトに複数回の書き換えが生じた場合には未定義の動作となるが、
書き換えが一度の場合はその書き換えがどのタイミングで起こるかわからないというだけで、
未定義の挙動にはならない。
こういう場合については未定義ではないが未規定の動作が含まれる。
副作用完了点の間で同一のオブジェクトに複数回の書き換えが生じた場合には未定義の動作となるが、
書き換えが一度の場合はその書き換えがどのタイミングで起こるかわからないというだけで、
未定義の挙動にはならない。
372デフォルトの名無しさん (スッップ Sd33-kk3k)
2022/03/20(日) 08:21:37.14ID:e7HuEm7id373デフォルトの名無しさん (ワッチョイ 7b7b-P46e)
2022/03/20(日) 10:46:46.29ID:+oGVYZOT0 組み込みのソフトしていると
使わない関数が多くて忘れていきます
使わない関数が多くて忘れていきます
374デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 11:48:15.83ID:w4XPcyomd <stdio.h>は使えないとして組み込み系って使える標準ライブラリあるの?
375デフォルトの名無しさん (ワッチョイ 1302-dhUW)
2022/03/20(日) 12:55:28.41ID:DiBIkIVz0 windows.h
376デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 13:05:34.82ID:w4XPcyomd 使える標準ライブラリを聞いたつもりなんだが
あと<Windows.h>はOS依存のライブラリな
あと<Windows.h>はOS依存のライブラリな
377蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-S5Ea)
2022/03/20(日) 13:25:28.64ID:y5NxTTYed 標準っていっても何の標準かわからん。
ANSI CとかC89とかあるだろ。
ANSI CとかC89とかあるだろ。
378デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 13:41:32.19ID:w4XPcyomd ANSI C, C89〜C17 の規格で存在を要求されてるライブラリ
組み込みコンパイラだとそもそもC89かC99しかサポートしてないだろうし、
fileIOとかは欠けてるだろうから何なら使えるか聞きたい
組み込みの環境も多数あるだろうから >>373 みたいな人が普段どういう関数使ってるか気になった
組み込みコンパイラだとそもそもC89かC99しかサポートしてないだろうし、
fileIOとかは欠けてるだろうから何なら使えるか聞きたい
組み込みの環境も多数あるだろうから >>373 みたいな人が普段どういう関数使ってるか気になった
379デフォルトの名無しさん (スッップ Sd33-kk3k)
2022/03/20(日) 13:42:12.13ID:e7HuEm7id それぞれ組み込むシステムに付属してるだろ
一元的な名前はない
ひょっとしたらstdio.hという名前かもしれない
一元的な名前はない
ひょっとしたらstdio.hという名前かもしれない
380デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/20(日) 14:14:31.30ID:4KnLtgrc0 組み込みって言っても小さくても Linux 動いちゃうようなのもあるし、何とも言えんな。
381デフォルトの名無しさん (アウアウウー Sa5d-63z5)
2022/03/20(日) 14:19:28.79ID:BOo0cJz/a string.h は普通に使えた
382はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d93e-bSSa)
2022/03/20(日) 17:31:23.40ID:u4Grkyrm0 C の規格は「規格合致ホスト処理系」「規格合致フリースタンディング処理系」を規定していて、
フリースタンディング処理系はライブラリとして float.h iso646.h limits.h stdarg.h stdbool.h stddef.h stdint.h の内容に限定している。
この範囲なら実行環境に左右されずに用意できるはずという判断なんだろう。
フリースタンディング処理系はライブラリとして float.h iso646.h limits.h stdarg.h stdbool.h stddef.h stdint.h の内容に限定している。
この範囲なら実行環境に左右されずに用意できるはずという判断なんだろう。
383デフォルトの名無しさん (スッップ Sd33-2DeC)
2022/03/20(日) 19:31:33.68ID:w4XPcyomd 組み込み向けの最低限の規格があるのか
#defineとtypedefしかないが
なるほどこれなら環境がどんなにショボくても用意できそう
#defineとtypedefしかないが
なるほどこれなら環境がどんなにショボくても用意できそう
384デフォルトの名無しさん (ワッチョイ d9da-SQ3f)
2022/03/20(日) 20:07:23.09ID:mxx3UMQ+0 ファイルディスクリプタを使ってEOFを知りたいんだけどどうしたらいい?
普通にreadすりゃ0になるからわかるし、そもそもファイルなら
求めたサイズより小さく読めるからわかるけど
ちょうどぴったりでreadしたあとに、つぎのreadをせずに知りたい
feofとかファイルポインタだで使えんがや
普通にreadすりゃ0になるからわかるし、そもそもファイルなら
求めたサイズより小さく読めるからわかるけど
ちょうどぴったりでreadしたあとに、つぎのreadをせずに知りたい
feofとかファイルポインタだで使えんがや
385デフォルトの名無しさん (ブーイモ MM33-35g2)
2022/03/20(日) 20:57:34.02ID:cOd2oDpEM unblocking modeでopenしたfdをreadして判定すれば
386デフォルトの名無しさん (ワッチョイ 292c-kNuw)
2022/03/20(日) 22:28:44.17ID:aLyHOWc60 ファイルのサイズを取得して、そこへseek するとか?
そもそも、ファイルを開いて、ファイルの終わりにseek できるかも。
元々、ファイルの追記モードもあるぐらいだから
そもそも、ファイルを開いて、ファイルの終わりにseek できるかも。
元々、ファイルの追記モードもあるぐらいだから
387デフォルトの名無しさん (スップ Sd33-kk3k)
2022/03/20(日) 22:54:16.07ID:pl7vy6aed >ちょうどぴったりでreadしたあとに、つぎのreadをせずに知りたい
そもそもreadが終端まで来たらつぎにreadしてもファイルアクセスせずに0を返すから同じだろう
そもそもreadが終端まで来たらつぎにreadしてもファイルアクセスせずに0を返すから同じだろう
388デフォルトの名無しさん (ワッチョイ fb43-SD5K)
2022/03/20(日) 23:19:06.05ID:dAApHicf0389384 (ワッチョイ d9da-SQ3f)
2022/03/21(月) 16:21:59.97ID:nqBLTVDb0 >>387
後出し情報であれやけど
readしたデータをどこかに送信、最後のデータには最後フラグを立てる
みたいなやつなので、ぴったりのときに困ってたんよ
バッファを2面用意して、すぐ送信せず常に1回貯めて送信するのが
正解なんだろうなぁ・・・ まあいいけど
後出し情報であれやけど
readしたデータをどこかに送信、最後のデータには最後フラグを立てる
みたいなやつなので、ぴったりのときに困ってたんよ
バッファを2面用意して、すぐ送信せず常に1回貯めて送信するのが
正解なんだろうなぁ・・・ まあいいけど
390デフォルトの名無しさん (ワッチョイ 2910-tpIf)
2022/03/21(月) 17:02:36.51ID:geQt3ukX0 ファイルサイズと読み出し位置から残りサイズ計算するぐらいか?
391デフォルトの名無しさん (ドコグロ MM63-zKmY)
2022/03/21(月) 18:07:17.68ID:bPJRBgFUM >>389
ファイルサイズわかってるならlseek(fd, 0, SEEK_CUR) で現在位置調べりゃいいだけかと
ファイルサイズわかってるならlseek(fd, 0, SEEK_CUR) で現在位置調べりゃいいだけかと
392デフォルトの名無しさん (ワッチョイ d9da-SQ3f)
2022/03/21(月) 21:41:26.44ID:nqBLTVDb0 一応、ファイルじゃないときのことも考慮したかった
393デフォルトの名無しさん (スップ Sd73-2DeC)
2022/03/21(月) 22:38:50.94ID:j56ex+kVd ファイルディスクリプタが0とか"/dev/stdin"という名前のファイルを考慮し始めたらそれはもう無理じゃ?
394デフォルトの名無しさん (ワッチョイ 5336-yL30)
2022/03/21(月) 23:41:34.24ID:/12E7ImH0 なんかバグやセキュリティホールの温床になりそうだな。
395デフォルトの名無しさん (ワッチョイ 292c-kNuw)
2022/03/21(月) 23:55:00.11ID:avj/Dp0k0 キャッシュとか、同期・非同期処理とか、ブロックされる・されないとか、
ブロックデバイス・シーケンシャルかとか、リダイレクト・パイプとか、
共有の有無とか、メモリ内共有かどうかとか、
そんな事を考えだしたら、キリがない
なんせ、Linux API の7割は、IO の説明だから、10年以上掛かる
ブロックデバイス・シーケンシャルかとか、リダイレクト・パイプとか、
共有の有無とか、メモリ内共有かどうかとか、
そんな事を考えだしたら、キリがない
なんせ、Linux API の7割は、IO の説明だから、10年以上掛かる
396デフォルトの名無しさん (ワッチョイ 13ad-bSSa)
2022/03/22(火) 02:05:16.87ID:vyk85loe0 1バイト単位なら fdopen() しちゃって FILE * でバッファリングさせた方が楽だな。feof() も使えるし。
1バイト単位ではなく1000バイト単位とか、大きい塊でバッファリングする必要がある場合は自作して feof() みたいなチェックができるようにする。
(それでも FILE * でのバッファリングがあった方が遅いストレージにあるファイルなら読み出し効率上がると思うが)。
1バイト単位ではなく1000バイト単位とか、大きい塊でバッファリングする必要がある場合は自作して feof() みたいなチェックができるようにする。
(それでも FILE * でのバッファリングがあった方が遅いストレージにあるファイルなら読み出し効率上がると思うが)。
397デフォルトの名無しさん (ワッチョイ fb96-SjDQ)
2022/03/24(木) 22:37:34.92ID:jD8pMP9K0 以下はライブラリバージョンが1より大きければ処理を有効する例です
#if LIBRARY_VERSION > 1
…
#endif
この「LIBRARY_VERSION」は何者ですか?
どこに定義されているのでしょうか?
#if LIBRARY_VERSION > 1
…
#endif
この「LIBRARY_VERSION」は何者ですか?
どこに定義されているのでしょうか?
398デフォルトの名無しさん (ワッチョイ 8bbb-35g2)
2022/03/24(木) 23:58:11.94ID:ItLF0V9z0399デフォルトの名無しさん (ワッチョイ 29d2-2DeC)
2022/03/24(木) 23:59:45.82ID:bdM8JANZ0 MSVC環境ならカーソル合わせてF12キー押せばいい
gccとかは知らん
gccとかは知らん
400デフォルトの名無しさん (ワッチョイ 7b7b-kNuw)
2022/03/25(金) 00:14:08.19ID:sET9XTXv0 >>397
独習Cからの抜粋と予想して記載します
複数の開発環境で同じヘッダファイルを使用する際の
ライブラリバージョンの差異でエラーとなるのを防ぐための
テクニックです
各自が自分の開発環境に合わせて
#define LIBRARY_VERSION 1などと
定義する必要があります
独習Cからの抜粋と予想して記載します
複数の開発環境で同じヘッダファイルを使用する際の
ライブラリバージョンの差異でエラーとなるのを防ぐための
テクニックです
各自が自分の開発環境に合わせて
#define LIBRARY_VERSION 1などと
定義する必要があります
401デフォルトの名無しさん (スップ Sd33-Dya/)
2022/03/25(金) 06:50:38.08ID:0hAphrOld いえ、それはそのライブラリの作者(メンテナンスしてる人)が標準ヘッダ内で定義すべき内容です
ユーザーは>>397を自分のファイル内で使用してバージョンの差異を吸収できます
ユーザーは>>397を自分のファイル内で使用してバージョンの差異を吸収できます
402デフォルトの名無しさん (ワッチョイ 3696-VQaK)
2022/03/26(土) 01:22:16.42ID:EYuSPLit0403デフォルトの名無しさん (ワッチョイ 3696-DtE+)
2022/03/26(土) 16:05:05.08ID:EYuSPLit0 コンパイル(リンク)時に、同じプロジェクト内の別ソースの関数などを呼び出せるのはなぜ?
インクルードして教えてる訳でもないのに、もしかして全ソースを探しに行ってるんですか?
インクルードして教えてる訳でもないのに、もしかして全ソースを探しに行ってるんですか?
404デフォルトの名無しさん (ワッチョイ b1d2-JyYd)
2022/03/26(土) 17:27:18.26ID:T/pJeR6z0 全ソースから探し出すのがリンク
includeとかで関数宣言だけは見えるようにする必要はあるが。
main.c
-----------
char* func(int size);
int main(){
char* p=func(16);
}
-----------
funcという名前の関数は、
前方宣言(1行目)してるのでリンク時に探しに行く。
リンク時の解決用に定義した関数(とその実装)を.objファイルに一覧としてまとめる。
リンクという作業では、.objと.libと.dllから"func"という名前の関数を探し出す。
見つからなかったり2つ以上見つかったらリンクエラーになる。
古いCだと前方宣言がなければ int func(); 決め打ちで前方宣言扱いしたりする。
includeとかで関数宣言だけは見えるようにする必要はあるが。
main.c
-----------
char* func(int size);
int main(){
char* p=func(16);
}
-----------
funcという名前の関数は、
前方宣言(1行目)してるのでリンク時に探しに行く。
リンク時の解決用に定義した関数(とその実装)を.objファイルに一覧としてまとめる。
リンクという作業では、.objと.libと.dllから"func"という名前の関数を探し出す。
見つからなかったり2つ以上見つかったらリンクエラーになる。
古いCだと前方宣言がなければ int func(); 決め打ちで前方宣言扱いしたりする。
405デフォルトの名無しさん (スップ Sdb2-iclU)
2022/03/26(土) 18:26:49.41ID:kmPIEuI7d >>403
(古典的な)Cではアセンブラソースに変換してアセンブル→リンクされるが
通常の関数名や変数名はアセンブラのグローバルシンボルに変換され
リンク時に他のアセンブラソースから参照できるようになる
一方関数内のローカル変数やstatic宣言された関数や変数はローカルシンボルとして扱われ他のアセンブラソースからは参照できなくなる
(古典的な)Cではアセンブラソースに変換してアセンブル→リンクされるが
通常の関数名や変数名はアセンブラのグローバルシンボルに変換され
リンク時に他のアセンブラソースから参照できるようになる
一方関数内のローカル変数やstatic宣言された関数や変数はローカルシンボルとして扱われ他のアセンブラソースからは参照できなくなる
406デフォルトの名無しさん (ワッチョイ 3696-DtE+)
2022/03/26(土) 23:45:36.64ID:EYuSPLit0 よく分かりました、ありがとうございました
407デフォルトの名無しさん (ワッチョイ 3696-VQaK)
2022/03/27(日) 21:02:14.58ID:angONFKk0 グローバル変数の修飾子の意味は次の意味で合っているでしょうか?
修飾子なし:変数の実体を定義
extern修飾子:定義済みの変数を参照する
static修飾子:変数の実体を定義して、その変数を他のファイルからexternさせない
修飾子なし:変数の実体を定義
extern修飾子:定義済みの変数を参照する
static修飾子:変数の実体を定義して、その変数を他のファイルからexternさせない
408デフォルトの名無しさん (ワッチョイ b110-VQaK)
2022/03/28(月) 11:08:20.21ID:c4HYTfCO0 適当にググって見つかったexternとstaticの解説
ttps://daeudaeu.com/extern/
ttps://daeudaeu.com/static/
ttps://daeudaeu.com/extern/
ttps://daeudaeu.com/static/
409デフォルトの名無しさん (ワッチョイ 55c7-DtE+)
2022/03/29(火) 00:24:04.59ID:c+1KPnOj0410デフォルトの名無しさん (スップ Sdb2-iclU)
2022/03/29(火) 06:11:36.84ID:7UUvIzLId そんなに信用されてもw
411デフォルトの名無しさん (ワッチョイ b110-UE6D)
2022/03/29(火) 08:18:01.14ID:C0VnxRTv0 自分で色々なパターンでコンパイルして確認しないのかな?って思う。
412デフォルトの名無しさん (スッップ Sdb2-JyYd)
2022/03/29(火) 08:55:46.71ID:tKmNrPY6d413デフォルトの名無しさん (ドコグロ MM96-XX5V)
2022/03/29(火) 13:03:41.11ID:M0Gs9C4cM llvm-14 の、ソースツリーの外にcmake ディレクトリができる下品な感じ、なんとかならないの?
414デフォルトの名無しさん (ワッチョイ 09e4-Nuys)
2022/03/29(火) 15:17:04.78ID:X58TTE+20 >>413
cloneしたディレクトリの直下にbuildディレクトリ作ってそこでcmake 〜 ../llvmじゃいかんの?
今どきソースのディレクトリで直接ビルドしないのは下品というより上品ではないですか
cloneしたディレクトリの直下にbuildディレクトリ作ってそこでcmake 〜 ../llvmじゃいかんの?
今どきソースのディレクトリで直接ビルドしないのは下品というより上品ではないですか
415デフォルトの名無しさん (ドコグロ MM96-XX5V)
2022/03/29(火) 18:15:06.70ID:U1DxU1KgM416デフォルトの名無しさん (ブーイモ MM96-gJLc)
2022/03/29(火) 18:20:46.45ID:1zZAboUWM ソースツリーの中にbuildフォルダ作るのは上品なん?
417はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d23e-Slbg)
2022/03/29(火) 18:47:55.98ID:4oPH291+0 autotools でも out-of-tree build は出来るようにするのが一般的な作法。
あらゆるプロジェクトでそうしているというほどではないと思うけど、ごく普通にある。
あらゆるプロジェクトでそうしているというほどではないと思うけど、ごく普通にある。
418デフォルトの名無しさん (ワッチョイ 09e4-UE6D)
2022/03/29(火) 22:23:02.11ID:X58TTE+20 https://llvm.org/docs/CMake.html を見るとソースフォルダの外でビルドしなきゃいけないような感じに書いてあるけど、
https://clang.llvm.org/get_started.html を見るとリポジトリ直下にbuild作ってそこでビルドすればいいように書いてあるから、llvmはお上品にビルドできるのですわ
https://clang.llvm.org/get_started.html を見るとリポジトリ直下にbuild作ってそこでビルドすればいいように書いてあるから、llvmはお上品にビルドできるのですわ
419デフォルトの名無しさん (ドコグロ MM96-XX5V)
2022/04/01(金) 12:18:00.47ID:BXJ/mUbsM llvm-14
まだゴミw
色んなものがダメになるw
まだゴミw
色んなものがダメになるw
420デフォルトの名無しさん (ワッチョイ 6fb3-7L1B)
2022/04/12(火) 19:31:59.59ID:B1tFLWvv0 char buf[256];
memset(buf, NULL, sizeof(buf));・・・(1)
memset(buf, 0, sizeof(buf));・・・(2)
(1)と(2)同じ事をしていると思うのですが、どっちで記述するのがメジャーですか?
memset(buf, NULL, sizeof(buf));・・・(1)
memset(buf, 0, sizeof(buf));・・・(2)
(1)と(2)同じ事をしていると思うのですが、どっちで記述するのがメジャーですか?
421蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd02-qTly)
2022/04/12(火) 19:35:46.65ID:Dt0TGPDOd NULLはポインタだから(2)が正しいよ。
422はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a23e-vtdv)
2022/04/12(火) 20:06:33.56ID:5njWaFr40 >>420
言語仕様に厳密にいうと前者で初期化しようとした場合に buf が 0 で初期化されることは保証されないし、
コンパイルエラーになることもありうる。
整数定数式の 0 がポインタに変換したときに空ポインタになることは保証されるので
NULL が単に #define NULL 0 として定義している環境もよくあるんだが、
仕様上の NULL は「処理系定義の空ポインタ定数に展開する」ということになっていて
整数の 0 を書ける文脈に NULL を書いて通るとは限らないんだ。
そんで「整数定数式の 0」がポインタに変換されたときに空ポインタになることは保証されるが、
定数式ではない文脈での整数の 0 は空ポインタになることは保証されていないし、
逆に空ポインタを整数に変換したときに 0 であるとも限らない。
if 文などの制御式としてポインタを置いても問題ないのは C の制御式は !=0 が補われたかのように動作するというルールのおかげ。
言語仕様に厳密にいうと前者で初期化しようとした場合に buf が 0 で初期化されることは保証されないし、
コンパイルエラーになることもありうる。
整数定数式の 0 がポインタに変換したときに空ポインタになることは保証されるので
NULL が単に #define NULL 0 として定義している環境もよくあるんだが、
仕様上の NULL は「処理系定義の空ポインタ定数に展開する」ということになっていて
整数の 0 を書ける文脈に NULL を書いて通るとは限らないんだ。
そんで「整数定数式の 0」がポインタに変換されたときに空ポインタになることは保証されるが、
定数式ではない文脈での整数の 0 は空ポインタになることは保証されていないし、
逆に空ポインタを整数に変換したときに 0 であるとも限らない。
if 文などの制御式としてポインタを置いても問題ないのは C の制御式は !=0 が補われたかのように動作するというルールのおかげ。
423デフォルトの名無しさん (ワッチョイ 6fb3-7L1B)
2022/04/12(火) 20:07:57.92ID:B1tFLWvv0424ハノン ◆QZaw55cn4c (ワッチョイ 57e6-ZAg2)
2022/04/20(水) 22:16:48.28ID:vxzn/db60425デフォルトの名無しさん (ワッチョイ 97b3-4qoo)
2022/04/22(金) 15:01:50.27ID:YxI2bgUE0 (ソースtt.c)
#include <stdio.h>
#include <math.h>
void main()
{
double d;
int a;
d = 1.234;
a = round(d);
printf("%d\n", a);
}
$gcc tt.c
/tmp/cc0NPwg6.o: 関数 `main' 内:
tt.c:(.text+0x23): `round' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
こんな短いソースなのに解決できない。助けてー(´・ω・`)
OSはLinuxです
#include <stdio.h>
#include <math.h>
void main()
{
double d;
int a;
d = 1.234;
a = round(d);
printf("%d\n", a);
}
$gcc tt.c
/tmp/cc0NPwg6.o: 関数 `main' 内:
tt.c:(.text+0x23): `round' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
こんな短いソースなのに解決できない。助けてー(´・ω・`)
OSはLinuxです
426デフォルトの名無しさん (ワッチョイ ff02-DCm/)
2022/04/22(金) 15:04:48.71ID:SxzvmxoM0 どうせリンクしてないとかそんなんだろ
427蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-i8wU)
2022/04/22(金) 15:05:51.08ID:BJPJNuGwd >>425
古いコンパイラにはroundがないかもしれない。
古いコンパイラにはroundがないかもしれない。
428蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-i8wU)
2022/04/22(金) 15:06:16.30ID:BJPJNuGwd -lm
429デフォルトの名無しさん (ワッチョイ ff02-DCm/)
2022/04/22(金) 15:12:16.74ID:SxzvmxoM0 gccなら -lmで動的リンクする簡易オプションがある、プログラム内だけで完結したいならコンパイラ付属のmathライブラリのソースも含めてコンパイル
430デフォルトの名無しさん (ワッチョイ ff02-DCm/)
2022/04/22(金) 15:14:29.72ID:SxzvmxoM0 動的リンクだとmathは浮動小数点の扱いが実行環境に依存するので静的リンク推奨
431デフォルトの名無しさん (ワッチョイ 97b3-4qoo)
2022/04/22(金) 15:26:22.00ID:YxI2bgUE0 ありがとう
gcc tt.c -lm
でコンパイル通りました。
gcc tt.c -lm
でコンパイル通りました。
432デフォルトの名無しさん (スププ Sdbf-DCm/)
2022/04/22(金) 15:44:53.29ID:I04xh82td 割とよく使う標準ライブラリなのに一々リンク方法をユーザーに選択させるという事の意義を考えるように、おまじないじゃないぞ
433デフォルトの名無しさん (スププ Sdbf-DCm/)
2022/04/22(金) 17:13:59.15ID:RFW8R+x+d roundかtruncかfloorかはたまたceilかもしれないrintとその一味のヤバいやつら
こんなもんさっさと追放しろよ
こんなもんさっさと追放しろよ
434デフォルトの名無しさん (ワッチョイ ff02-DCm/)
2022/04/22(金) 17:31:11.41ID:SxzvmxoM0 整数型で表せない整数をdoubleで表したい時も稀にある
どうせ前後の整数(±1)は表せない不連続すきっ歯領域だし、どう丸まろうが影響無い部分だよ、って意図の明示に
どうせ前後の整数(±1)は表せない不連続すきっ歯領域だし、どう丸まろうが影響無い部分だよ、って意図の明示に
435デフォルトの名無しさん (ワッチョイ ff02-DCm/)
2022/04/22(金) 17:49:02.83ID:SxzvmxoM0 用途は思い浮かばないでもないが、適切に使われてないケースが多分99%
436デフォルトの名無しさん (ワッチョイ 9663-JgK/)
2022/04/23(土) 13:45:19.22ID:+Gd9xYyP0 表せないときは整数型多倍長処理作る
437デフォルトの名無しさん (ワッチョイ 2cae-E6ke)
2022/04/24(日) 11:54:23.21ID:S9c+iUdl0 GMPでそ
C++じゃないとちょっと使いにくいけど
C++じゃないとちょっと使いにくいけど
438デフォルトの名無しさん (ワッチョイ 51e6-DWDP)
2022/04/24(日) 15:18:10.66ID:Qwrn6LYl0439デフォルトの名無しさん (スフッ Sd94-6n8/)
2022/04/25(月) 03:24:41.99ID:LAuA6+3Dd 多倍長整数とか言ってる人は意図汲めてなくね?
正確性も表現力も不要だけど、それでも整数に相当する巨大数が要るのは極を利用した求根アルゴリズム(方程式解法)とかでしょうよ
たとえば、求めたい関数fの根がその逆数関数1/fの極と等しい事を利用するとか
もしdoubleの範囲を多倍長整数/任意桁数演算で308桁を陽に扱必要があるけど、そもそも極判定は指数部のみで行えるわけで、各桁の数字を陽に保持する意味が無い
一方で指数が巨大なdoubleを生で足すのは悪手
丸めれば各々の積分経路での評価値は真値から一旦遠ざかるけど、一貫した丸めを行う限りは10000万回も足せば互いに相殺されて均される
正確性も表現力も不要だけど、それでも整数に相当する巨大数が要るのは極を利用した求根アルゴリズム(方程式解法)とかでしょうよ
たとえば、求めたい関数fの根がその逆数関数1/fの極と等しい事を利用するとか
もしdoubleの範囲を多倍長整数/任意桁数演算で308桁を陽に扱必要があるけど、そもそも極判定は指数部のみで行えるわけで、各桁の数字を陽に保持する意味が無い
一方で指数が巨大なdoubleを生で足すのは悪手
丸めれば各々の積分経路での評価値は真値から一旦遠ざかるけど、一貫した丸めを行う限りは10000万回も足せば互いに相殺されて均される
440デフォルトの名無しさん (スフッ Sd94-6n8/)
2022/04/25(月) 03:38:21.89ID:LAuA6+3Dd ちょっと拵えすぎたような設定だったかもしれないけど、300桁を陽に保持して、ハードウェアの恩恵も無しに一万回加算とか、向かないどころかあまりにも非現実的過ぎる例もある
という例程度に
あとdouble使ってればinfが返ってくる可能性があるのが最大の利点
もしinfを引き当てられれば、それを与正入力がその浮動小数点実装における最高精度の解だと理論的に保証される
という例程度に
あとdouble使ってればinfが返ってくる可能性があるのが最大の利点
もしinfを引き当てられれば、それを与正入力がその浮動小数点実装における最高精度の解だと理論的に保証される
441デフォルトの名無しさん (スフッ Sd94-6n8/)
2022/04/25(月) 03:44:18.07ID:LAuA6+3Dd 訂正と補足
それを与正→与えた入力
(1/f)(x)→inf
と
f(x) → 0
と
fの根はそのx
は論理的に同値
それを与正→与えた入力
(1/f)(x)→inf
と
f(x) → 0
と
fの根はそのx
は論理的に同値
442デフォルトの名無しさん (ワッチョイ 3802-6n8/)
2022/04/25(月) 05:05:51.34ID:ueJIdSJ50 INF見付かれば恣意的に収束/発散閾値を調整しなくてエレガントだよな
俺は素性の事前に分かってて留数定理使えるような関数くらいしか扱わないから、気にせずそのまま足しちゃうわ
積分経路は(楽だから)正方形に取り、均等に4分割して極のある範囲を再帰的に絞り込んでる、下手にニアミスしたりするとかえって桁落ちしたりして整数倍からズレる
±0.1くらいなら、きっと極を囲めてるものと想定
Cで数値計算入門みたいな本で勉強してるけど、浮動小数点の特殊値とかエラーの扱いとかの記述が一切抜け落ちてて困る
俺は素性の事前に分かってて留数定理使えるような関数くらいしか扱わないから、気にせずそのまま足しちゃうわ
積分経路は(楽だから)正方形に取り、均等に4分割して極のある範囲を再帰的に絞り込んでる、下手にニアミスしたりするとかえって桁落ちしたりして整数倍からズレる
±0.1くらいなら、きっと極を囲めてるものと想定
Cで数値計算入門みたいな本で勉強してるけど、浮動小数点の特殊値とかエラーの扱いとかの記述が一切抜け落ちてて困る
443デフォルトの名無しさん (スフッ Sd70-6n8/)
2022/04/25(月) 19:15:48.77ID:o7ajKrF0d 実質ハードの実装に収束(発散)判定任せて綺麗に見えてるだけだがな
しかし比較無しに符号、複素数なら東西南北まで得られるのは便利
しかし比較無しに符号、複素数なら東西南北まで得られるのは便利
444デフォルトの名無しさん (ワッチョイ 73b3-jUKb)
2022/05/09(月) 06:57:39.16ID:Egg1/KgR0 20年くらい前、Windows98が使われてた頃なんですが
char s = ''; // ←シングルクォーテーション2個
っという書き方が許されてた記憶があるんですが、記憶違いかな?
今Linux上のgccでコレをコンパイルすると「error: empty character constant」になる
char s = ''; // ←シングルクォーテーション2個
っという書き方が許されてた記憶があるんですが、記憶違いかな?
今Linux上のgccでコレをコンパイルすると「error: empty character constant」になる
445デフォルトの名無しさん (アウアウウー Sa1f-cwrN)
2022/05/09(月) 07:35:16.71ID:QnLN+NJ0a あえてなのかバグなのかは知らんけど20年前のコンパイラがそういう記法を通してたってだけだろ
446デフォルトの名無しさん (ワッチョイ 73b3-jUKb)
2022/05/09(月) 08:27:27.53ID:Egg1/KgR0 >>445
冷静に考えてみたらコンパイラもOSも違うからそういうことだな
冷静に考えてみたらコンパイラもOSも違うからそういうことだな
447デフォルトの名無しさん (ワッチョイ 3ebb-RieT)
2022/05/09(月) 10:42:17.80ID:qGH53jdv0 ''で何が代入されるの?
448デフォルトの名無しさん (ワッチョイ 8f69-XDj1)
2022/05/09(月) 11:12:38.36ID:DLFHVgdp0 '\0' や 0 と同等の動作なんかねぇ
449デフォルトの名無しさん (ラクッペペ MMe6-PUK/)
2022/05/09(月) 11:15:27.95ID:DuxsXAR8M 普通に考えれば空文字だと思う
450デフォルトの名無しさん (ワッチョイ 7310-PvPk)
2022/05/09(月) 11:35:54.50ID:lTlzTKNA0 NULL 「何もないよー」な意味をあらわす単語
空文字 長さ0文字の文字列のこと
この解釈でOK?
空文字 長さ0文字の文字列のこと
この解釈でOK?
451デフォルトの名無しさん (ワッチョイ 8f69-XDj1)
2022/05/09(月) 11:37:44.15ID:DLFHVgdp0 文字と文字列は違う 今話題に上がってるのは文字のほう
452デフォルトの名無しさん (ラクッペペ MMe6-PUK/)
2022/05/09(月) 12:02:23.30ID:ItS/vT2KM 長さ0文字の文字列なら""(ダブルコーテーション)では?
453デフォルトの名無しさん (アウアウウー Sa1f-KEdX)
2022/05/09(月) 14:03:39.88ID:KBCMvYUWa >>448
まあそれが一番ありがちかと
まあそれが一番ありがちかと
454はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-PvPk)
2022/05/09(月) 17:13:19.74ID:9vSL2/iz0 >>444
言語仕様にはそれを通す規定は見つからないな。
少なくとも一文字は必要であることになってる。
C89 ではすでにそうなってるし、後の仕様でも変更はない。
出来る処理系があったのだとしたらあくまで処理系の拡張。
「たとえば 'ab' などのように二文字以上を含む場合は処理系定義」という意味の規定はあるので
雑に任意個の文字を受け付けるようにしたらうっかり 0 個も通してしまったとか、
意図的ではない挙動 (コンパイラのバグ) だった可能性もあるし。
言語仕様にはそれを通す規定は見つからないな。
少なくとも一文字は必要であることになってる。
C89 ではすでにそうなってるし、後の仕様でも変更はない。
出来る処理系があったのだとしたらあくまで処理系の拡張。
「たとえば 'ab' などのように二文字以上を含む場合は処理系定義」という意味の規定はあるので
雑に任意個の文字を受け付けるようにしたらうっかり 0 個も通してしまったとか、
意図的ではない挙動 (コンパイラのバグ) だった可能性もあるし。
455デフォルトの名無しさん (ワッチョイ 2e02-ltxK)
2022/05/09(月) 17:32:30.12ID:x5IK3MV30 立方根を自作関数で求める方法教えてください、、、、、
456はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-PvPk)
2022/05/09(月) 17:46:08.50ID:9vSL2/iz0 >>455
要件次第だけど実装が一番簡単なのは log を使うことだと思う。
要件次第だけど実装が一番簡単なのは log を使うことだと思う。
457デフォルトの名無しさん (ワッチョイ 2e02-ltxK)
2022/05/09(月) 17:47:02.53ID:x5IK3MV30 >>456
ニュートン法を使いたいです、、
ニュートン法を使いたいです、、
458はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-PvPk)
2022/05/09(月) 17:50:27.78ID:9vSL2/iz0 >>457
方法がわかってるなら何をききたいの?
方法がわかってるなら何をききたいの?
459デフォルトの名無しさん (ワッチョイ be63-PvPk)
2022/05/09(月) 18:03:26.90ID:jsi1f5HY0 何も入っていない変数が作れます
460デフォルトの名無しさん (ワッチョイ 1746-w9IM)
2022/05/09(月) 18:36:55.77ID:4JqWZIdB0 だからその
> 何も入っていない
は0から0xffのうちの何なのよ。
1 Byteの領域はあるんでそ。
> 何も入っていない
は0から0xffのうちの何なのよ。
1 Byteの領域はあるんでそ。
461デフォルトの名無しさん (ワッチョイ be63-PvPk)
2022/05/09(月) 18:39:59.52ID:jsi1f5HY0 そこは未知の領域
462デフォルトの名無しさん (アウアウウー Sa1f-KEdX)
2022/05/09(月) 19:59:08.45ID:UxqgrJa1a >>460
ネタに全力で食いつくなよw
ネタに全力で食いつくなよw
463デフォルトの名無しさん (ワッチョイ ea02-zDU0)
2022/05/09(月) 20:46:46.66ID:poYUryAv0 一番簡単なのは挟み撃ちだと思うけどな
1の三乗は
0.5の三乗は
と1/2づつ狭めていく
1の三乗は
0.5の三乗は
と1/2づつ狭めていく
464デフォルトの名無しさん (スッップ Sd8a-m628)
2022/05/10(火) 09:30:11.65ID:79aB+w7Md >>450
NULLはポインターに代入できる「無意味な位置」を表すアドレス
NULLはポインターに代入できる「無意味な位置」を表すアドレス
465はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-PvPk)
2022/05/10(火) 11:28:15.81ID:dIEMLhL70 だいぶんボケたことを書いてしまった。 (>>456)
式変形をする必要すらなく pow ひとつで良かった。
double cube_root(double x) {
return pow(x, 1.0/3);
}
式変形をする必要すらなく pow ひとつで良かった。
double cube_root(double x) {
return pow(x, 1.0/3);
}
466デフォルトの名無しさん (ワッチョイ ca69-PvPk)
2022/05/10(火) 19:36:27.76ID:gxi5OEx30 それを自作関数で求めるとは言わんやろ
467デフォルトの名無しさん (ワッチョイ 6aad-zDU0)
2022/05/10(火) 23:29:45.70ID:CQsKbFR90 言うだろう
468デフォルトの名無しさん (スッププ Sd8a-m628)
2022/05/11(水) 06:53:21.08ID:zyEQjrH3d コンビニ弁当買ってきて料理したというレベル
469デフォルトの名無しさん (ワッチョイ be63-PvPk)
2022/05/11(水) 10:08:25.28ID:jCepvp6u0 通はコンパイラの自作から始める?
470デフォルトの名無しさん (ブーイモ MMd6-RieT)
2022/05/11(水) 10:35:21.30ID:a8uVrD+/M 情報学科ならCPU設計からだよ
471デフォルトの名無しさん (ラクッペペ MMe6-PUK/)
2022/05/11(水) 10:39:55.99ID:3yHJq16kM CPU設計だと情報学科なのか電子工学科なのか微妙なところ
472デフォルトの名無しさん (ワッチョイ be63-PvPk)
2022/05/11(水) 10:43:04.06ID:jCepvp6u0 CPU設計ソフトを作る事から
473デフォルトの名無しさん (スッププ Sd8a-m628)
2022/05/11(水) 12:00:05.99ID:2wozbOYLd474デフォルトの名無しさん (アウアウウー Sa1f-KEdX)
2022/05/11(水) 12:53:38.63ID:rJ/SGv8Sa475デフォルトの名無しさん (ラクッペペ MMe6-PUK/)
2022/05/11(水) 12:57:11.03ID:3n2UFvlUM CPU設計の半導体物性や加工技術は情報学科の範疇外だと思う
476デフォルトの名無しさん (オッペケ Sr33-G7U6)
2022/05/11(水) 21:22:30.22ID:Uorg83Yar >>455
もう解決したってことでいいよね
もう解決したってことでいいよね
477デフォルトの名無しさん (ワッチョイ 7e02-jKFb)
2022/05/11(水) 23:25:04.32ID:eEErnLrt0478デフォルトの名無しさん (ワッチョイ 73d2-U1YL)
2022/05/12(木) 00:07:01.33ID:a2iZs8ls0 たぶんニュートン法を使いたいけどアルゴリズムを実装できないだけだと思うな
479デフォルトの名無しさん (オッペケ Sr33-G7U6)
2022/05/12(木) 00:13:44.54ID:rHUhttMxr 反論がないし解決したってことで
480デフォルトの名無しさん (ワッチョイ 1746-OCox)
2022/05/12(木) 03:09:36.14ID:DwGZHhAI0 simulink coderが便利すぎて手打ちする気にならない件
481デフォルトの名無しさん (ワッチョイ 6fbd-EjCo)
2022/05/14(土) 10:01:08.50ID:JFqjXnq80482デフォルトの名無しさん (スッップ Sdd7-m0tN)
2022/05/14(土) 10:23:10.43ID:yelWKEO3d char ch = NULL;
という書き方ならよく見かけた
これはもちろん間違いなのだが
という書き方ならよく見かけた
これはもちろん間違いなのだが
483デフォルトの名無しさん (スププ Sd2f-copH)
2022/05/14(土) 15:45:11.14ID:fRXCxvkXd >>444
これどうなったの
これどうなったの
484デフォルトの名無しさん (ワッチョイ e3ad-lIli)
2022/05/15(日) 13:21:26.16ID:evMzyiSb0 '' が使えるかどうかはコンパイラ次第なのでは?
文法的にダメだろうがなんだろうが使えるようにコンパイラ作られたらそれまでだし。
そういやGCCにも void * の変数に ++ とかの計算が出来たりして衝撃を受けたことがあったなあ。
他のコンパイラでコンパイルしてエラーになって発覚。
文法的にダメだろうがなんだろうが使えるようにコンパイラ作られたらそれまでだし。
そういやGCCにも void * の変数に ++ とかの計算が出来たりして衝撃を受けたことがあったなあ。
他のコンパイラでコンパイルしてエラーになって発覚。
485デフォルトの名無しさん (スプッッ Sddb-f+Gq)
2022/05/15(日) 13:31:38.71ID:+H3bKj0ad キャスト式に代入とかね
486デフォルトの名無しさん (ワッチョイ c702-yXul)
2022/05/15(日) 13:39:44.18ID:tGTiPFBf0 void *型のインクリって一体何バイト進むんだ?
487デフォルトの名無しさん (ワッチョイ 5d10-yvGd)
2022/05/15(日) 13:48:28.89ID:+dMN0zqr0 >void *型のインクリって一体何バイト進むんだ?
codepad のC言語 → 1バイト
codepad のC++ → エラー
ISO C++ forbids incrementing a pointer of type 'void*' compilation terminated due to -Wfatal-errors.
codepad のC言語 → 1バイト
codepad のC++ → エラー
ISO C++ forbids incrementing a pointer of type 'void*' compilation terminated due to -Wfatal-errors.
488デフォルトの名無しさん (ワッチョイ e3ad-lIli)
2022/05/15(日) 13:53:41.23ID:evMzyiSb0489デフォルトの名無しさん (ワッチョイ c702-yXul)
2022/05/15(日) 14:00:59.60ID:tGTiPFBf0 即レスサンキュー
490はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d73e-yvGd)
2022/05/15(日) 14:07:27.97ID:PUHmRytO0 gcc だと sizeof(void) が 1 を返したりするんだよな。
C++ だとこれがエラーになることを SFINAE のトリックに使ったりすることもあるんで、
どうやって辻褄を合わせているのかよくわからん。
C++ だとこれがエラーになることを SFINAE のトリックに使ったりすることもあるんで、
どうやって辻褄を合わせているのかよくわからん。
491デフォルトの名無しさん (ワッチョイ 5d10-yvGd)
2022/05/16(月) 14:17:30.76ID:KxReCtrr0 こういう質問が来るたびに自分で試せばいいのにって思う。
仕様がどうなってるのかという質問なら理解できるけど。
仕様がどうなってるのかという質問なら理解できるけど。
492デフォルトの名無しさん (アウアウウー Sa31-kfZy)
2022/05/16(月) 20:01:48.66ID:YQrK3HARa493デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/17(火) 11:31:17.17ID:HihepIbQd 単に好奇心で聞いてるだけだと思うよ
実用的に使おうと言うんじゃなく
というか関数ポインタも1バイトになるのかw
実用的に使おうと言うんじゃなく
というか関数ポインタも1バイトになるのかw
494デフォルトの名無しさん (ワッチョイ d73e-yvGd)
2022/05/17(火) 11:43:19.86ID:VUKzLr9a0 何か有用な使い道ってあるか?
495デフォルトの名無しさん (ワッチョイ eb69-wjZZ)
2022/05/17(火) 17:06:43.60ID:FuWQL0zJ0 汎用ポインタとして void * で受けておいて
char * でキャストすることなく そのポインタを 1バイト単位で操作できたとしても
*で実体を取得する瞬間にキャスト必須になるし どうなんだろ
char * でキャストすることなく そのポインタを 1バイト単位で操作できたとしても
*で実体を取得する瞬間にキャスト必須になるし どうなんだろ
496デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/17(火) 18:02:18.76ID:HihepIbQd ただのうっかりミスだと思うんだが
修正するとコンパイルできなくなるんで仕様にしてしまったのか
修正するとコンパイルできなくなるんで仕様にしてしまったのか
497デフォルトの名無しさん (アウアウウー Sa31-kfZy)
2022/05/17(火) 18:51:17.67ID:Qbd65aeba >>493
> というか関数ポインタも1バイトになるのかw
んなわけないだろw
関数ポインタは普通に4/8バイトだよ
関数のサイズが1バイトになる
http://codepad.org/zwItkWg3
> というか関数ポインタも1バイトになるのかw
んなわけないだろw
関数ポインタは普通に4/8バイトだよ
関数のサイズが1バイトになる
http://codepad.org/zwItkWg3
498デフォルトの名無しさん (ワッチョイ 5b63-yvGd)
2022/05/17(火) 19:17:06.37ID:kg0MHFY+0 バグからさめると別のバグの世界のような気がする。
499デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/17(火) 20:20:31.65ID:HihepIbQd >>497
君以外はみんなわかってる気がするw
君以外はみんなわかってる気がするw
500デフォルトの名無しさん (ワッチョイ abcf-7P1Y)
2022/05/17(火) 21:01:08.19ID:xzGoH14A0 >>495
Cスタイルキャストだとあまり気にならないかもしれないけどC++スタイル2回重ねるのはちょっと嫌になる。
Cスタイルキャストだとあまり気にならないかもしれないけどC++スタイル2回重ねるのはちょっと嫌になる。
501デフォルトの名無しさん (アウアウウー Sa31-kfZy)
2022/05/17(火) 21:09:29.94ID:JCWwsd/Ra502デフォルトの名無しさん (ワッチョイ d73e-yvGd)
2022/05/17(火) 21:17:57.23ID:VUKzLr9a0503デフォルトの名無しさん (アウアウウー Sa31-kfZy)
2022/05/17(火) 21:26:34.47ID:cXB/OW/Na 文脈?
> gcc だと sizeof(void) が 1 を返したりするんだよな。
↓
> というか関数ポインタも1バイトになるのかw
恥の上塗りかよw
> gcc だと sizeof(void) が 1 を返したりするんだよな。
↓
> というか関数ポインタも1バイトになるのかw
恥の上塗りかよw
504デフォルトの名無しさん (ワッチョイ abcf-7P1Y)
2022/05/17(火) 21:35:35.34ID:xzGoH14A0505デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/17(火) 22:33:22.42ID:HihepIbQd >>503
お前がな…
お前がな…
506デフォルトの名無しさん (テテンテンテン MM17-c+Ta)
2022/05/17(火) 22:45:15.36ID:pcmvPs1uM >>503
お前よりはな
お前よりはな
507デフォルトの名無しさん (アウアウウー Sa31-K8fu)
2022/05/18(水) 07:47:41.31ID:PdG/XNB8a スレチだったら申し訳ない
とあるフリーソフトが起動しなくてdllファイルを読み込んでないのが原因っぽいんだけど
VSでdumpbinを使って関数を調べた所LNK4044のエラー 〇〇.dllは無効です、無視されます
との文が出るんだがこうなるともうdllに原因があるから対処しようがないってこと?
ここから修復出来る方法ありますかね
とあるフリーソフトが起動しなくてdllファイルを読み込んでないのが原因っぽいんだけど
VSでdumpbinを使って関数を調べた所LNK4044のエラー 〇〇.dllは無効です、無視されます
との文が出るんだがこうなるともうdllに原因があるから対処しようがないってこと?
ここから修復出来る方法ありますかね
508デフォルトの名無しさん (ワッチョイ d73e-yvGd)
2022/05/18(水) 11:53:43.44ID:bslzKqYb0 >>507
状況によるのでその情報からだけではわからない。
状況によるのでその情報からだけではわからない。
509デフォルトの名無しさん (ワッチョイ eb69-wjZZ)
2022/05/18(水) 14:03:00.61ID:G19C49df0 ぶっ壊れではなく、OSにVCランタイムが入ってない可能性
Dependency Walker (https://www.dependencywalker.com/) で
その DLL をトレースしてみて、そいつが vcランタイム 要求していないか確認する
(そして古いverのVCランタイムをどうやって入手するかという話に)
Dependency Walker (https://www.dependencywalker.com/) で
その DLL をトレースしてみて、そいつが vcランタイム 要求していないか確認する
(そして古いverのVCランタイムをどうやって入手するかという話に)
510デフォルトの名無しさん (ワッチョイ eb69-wjZZ)
2022/05/18(水) 14:10:31.11ID:G19C49df0 >>500
C++ だと void * のインクリメントがエラーになるので C限定のお話やね
C++ だと void * のインクリメントがエラーになるので C限定のお話やね
511デフォルトの名無しさん (ワッチョイ 0b75-yQzt)
2022/05/18(水) 22:34:39.58ID:CFFEhoB20 ガチ初心者なんやが、まず何すればいいん?
HtmlとCSSだけ少し触ったことがある
HtmlとCSSだけ少し触ったことがある
512デフォルトの名無しさん (ワッチョイ ffbb-r8mr)
2022/05/18(水) 22:40:25.27ID:E1vMcGgB0 ガチ初心者なら、なにもC言語に手を出さなくても……
513デフォルトの名無しさん (ワッチョイ 5b63-yvGd)
2022/05/18(水) 22:52:35.00ID:yp09HIZB0 何が目標なのかを書いてみて
514デフォルトの名無しさん (スプッッ Sd2f-f+Gq)
2022/05/19(木) 05:23:54.79ID:UJCwwVidd >>510
それgcc限定のお話だな
それgcc限定のお話だな
515デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/19(木) 07:44:23.05ID:KBg+aMKFd516デフォルトの名無しさん (スプッッ Sddb-f+Gq)
2022/05/19(木) 09:14:35.57ID:TZT0OIWkd へてむるとCSSてことは、関心事はネットかな?
517デフォルトの名無しさん (ワッチョイ d73e-yvGd)
2022/05/19(木) 12:14:13.87ID:kqStXWIg0518デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/19(木) 18:09:46.73ID:KBg+aMKFd こういう奴はめんどうくさいことが嫌いで
とにかく近道が行きたくて聞いてるので
目的地なんて知らんとにかく近道教えろ!ってことなので
教えようがないんよ
とにかく近道が行きたくて聞いてるので
目的地なんて知らんとにかく近道教えろ!ってことなので
教えようがないんよ
519デフォルトの名無しさん (ワッチョイ 53ae-Lh2i)
2022/05/20(金) 00:03:31.03ID:SEOso9Vd0 すみません、visual studio communityを使っています
関数は呼び出すより前に定義の必要があることが分かりました
ですがソースファイル(.c)を分けて、一方に関数を定義すると定義する順番を気にせず使えます
インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます
何故でしょうか?
関数は呼び出すより前に定義の必要があることが分かりました
ですがソースファイル(.c)を分けて、一方に関数を定義すると定義する順番を気にせず使えます
インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます
何故でしょうか?
520デフォルトの名無しさん (ワッチョイ eb69-yvGd)
2022/05/20(金) 00:55:01.33ID:tfeu1OX00 >>519
> 関数は呼び出すより前に定義の必要があることが分かりました
いいえ、宣言しておけば定義は後でもいいです
> インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます
しなくてもできるってことは必要じゃないってことです
> 関数は呼び出すより前に定義の必要があることが分かりました
いいえ、宣言しておけば定義は後でもいいです
> インクルードが必要だと思いますが、インクルードせずに関数を呼び出せます
しなくてもできるってことは必要じゃないってことです
521デフォルトの名無しさん (ワッチョイ e3ad-lIli)
2022/05/20(金) 01:27:17.95ID:1uCl4yv30 >>519
#include等の先頭に#が付いたやつはCコンパイラに処理を引き渡す前にソースのテキストに対して行われる編集を指示するものだ。
つまり #include で何かファイルが指定されていたらそのファイルを読んできてその行に挿入する。そしてそれからコンパイルが行われる。
なので #include で指定するファイルの内容を直接そこに書いてしまっても結果は同じになる。
#include等の先頭に#が付いたやつはCコンパイラに処理を引き渡す前にソースのテキストに対して行われる編集を指示するものだ。
つまり #include で何かファイルが指定されていたらそのファイルを読んできてその行に挿入する。そしてそれからコンパイルが行われる。
なので #include で指定するファイルの内容を直接そこに書いてしまっても結果は同じになる。
522デフォルトの名無しさん (ワッチョイ efd2-ydBh)
2022/05/20(金) 03:28:01.86ID:QfqNLeQw0 >>519
C言語では関数宣言がなくても関数っぽく使われてるものがあったら int func(); の宣言があるものとして決め打ちする。
.hとかで前方宣言してなくてもコンパイルは通る。
利用側の.cでは引数の数と型と返り値型が分からんが、合ってれば問題なく使える。
間違ってた使い方をしたときにエラーを出せないから極力避けるべき(コンパイラによっては出るかもしれんが)
この仕様はエラーを見つける観点からすればクソなので、長い歴史があるC言語以外では採用されてないはず
C言語では関数宣言がなくても関数っぽく使われてるものがあったら int func(); の宣言があるものとして決め打ちする。
.hとかで前方宣言してなくてもコンパイルは通る。
利用側の.cでは引数の数と型と返り値型が分からんが、合ってれば問題なく使える。
間違ってた使い方をしたときにエラーを出せないから極力避けるべき(コンパイラによっては出るかもしれんが)
この仕様はエラーを見つける観点からすればクソなので、長い歴史があるC言語以外では採用されてないはず
523はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d73e-yvGd)
2022/05/20(金) 05:08:48.27ID:YhZHNcJW0 暗黙の関数宣言は仕様から削除されてるよ。
C99 の時点でもう項目がない。
互換性の都合で出来るようにしてある処理系も多いと思うけど
警告くらいは出てるはずだと思うんで読み飛ばさずにしっかり見て欲しいな。
C99 の時点でもう項目がない。
互換性の都合で出来るようにしてある処理系も多いと思うけど
警告くらいは出てるはずだと思うんで読み飛ばさずにしっかり見て欲しいな。
524デフォルトの名無しさん (ワッチョイ bfae-lIli)
2022/05/20(金) 06:35:34.02ID:QdnN/13A0 まあわかるんだけど
K&R Cの楽しさがどんどん消えていく寂しさが・・・
K&R Cの楽しさがどんどん消えていく寂しさが・・・
525デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/20(金) 08:04:15.92ID:px60Na0ad みんな>>519の意味がよくわかるな
というかこれらの解答であってるの?
というかこれらの解答であってるの?
526デフォルトの名無しさん (ワッチョイ 5d10-yvGd)
2022/05/20(金) 08:18:47.95ID:xUD6u/k80 昔大学の授業で使ったTurbo Cで
printf()等がincludeせずに使えた。
warningぐらいは出てたかも。
printf()等がincludeせずに使えた。
warningぐらいは出てたかも。
527デフォルトの名無しさん (オッペケ Sr75-CBzb)
2022/05/20(金) 09:35:03.59ID:qCLhnuk6r 警告出てもコンパイル通ることあるよね
大学のシステムプログラミングの授業の教科書のサンプルコード、インクルード不足で警告よく吐いてた
大学のシステムプログラミングの授業の教科書のサンプルコード、インクルード不足で警告よく吐いてた
528デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/20(金) 10:00:52.44ID:px60Na0ad どんなコードでもラベルがどこかで定義されてる限りコンパイル・リンクはできるんだよ
実行時に望みの結果にならなかったり最悪保護エラーになったりするだけ
実行時に望みの結果にならなかったり最悪保護エラーになったりするだけ
529デフォルトの名無しさん (ワッチョイ 2d5f-yvGd)
2022/05/20(金) 10:12:25.64ID:mW5NTdIj0 コンパイルエラー・リンクエラーになるコードなんていくらでもあるだろ何言ってんだ。
530デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/20(金) 10:15:14.87ID:px60Na0ad ほら変なのが絡んできたw
531デフォルトの名無しさん (ワッチョイ 5d10-yvGd)
2022/05/20(金) 12:57:31.73ID:xUD6u/k80 動的リンクってやつかな?
C言語はDOS時代に独学でやってたんで(大学はコードの書き方しか教えてくれんかった)どうしても
「宣言だけしておけばコンパイルは通るけど、リンク時に実態が無いとエラーになる」
ってイメージが。
C言語はDOS時代に独学でやってたんで(大学はコードの書き方しか教えてくれんかった)どうしても
「宣言だけしておけばコンパイルは通るけど、リンク時に実態が無いとエラーになる」
ってイメージが。
532はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d73e-yvGd)
2022/05/20(金) 14:41:08.78ID:YhZHNcJW0533デフォルトの名無しさん (スップ Sd03-m0tN)
2022/05/20(金) 16:18:15.28ID:px60Na0ad ごちゃごちゃしてきたな
>>519に戻って「プロトタイプ宣言しなくても参照できるのは何故か」と言えば
古典的Cでは関数名は単純にfunc()→_funcというアセンブラシンボルに変換してるだけなので
別のソースでも同じ名前で定義してさえいればリンクは通る
ただCでは引数をスタックに積んで呼び出すので引数の数や順番が関数と呼び出し側で統一されてないと引数を正しく処理できないので見つけにくいエラーを起こしたり最悪スタック上の戻りアドレスを書き換えてしまって停止する
だからインクルードファイルでプロトタイプ宣言して統一しようということ
C++では[関数名_引数の数や種類]というアセンブラシンボルに変換するので、正しい引数で呼び出さないとリンク時に見つからないと言われる
それ以前にプロトタイプが必須になってるけど
>>519に戻って「プロトタイプ宣言しなくても参照できるのは何故か」と言えば
古典的Cでは関数名は単純にfunc()→_funcというアセンブラシンボルに変換してるだけなので
別のソースでも同じ名前で定義してさえいればリンクは通る
ただCでは引数をスタックに積んで呼び出すので引数の数や順番が関数と呼び出し側で統一されてないと引数を正しく処理できないので見つけにくいエラーを起こしたり最悪スタック上の戻りアドレスを書き換えてしまって停止する
だからインクルードファイルでプロトタイプ宣言して統一しようということ
C++では[関数名_引数の数や種類]というアセンブラシンボルに変換するので、正しい引数で呼び出さないとリンク時に見つからないと言われる
それ以前にプロトタイプが必須になってるけど
534デフォルトの名無しさん (ワンミングク MM8a-+hKh)
2022/05/25(水) 01:22:00.94ID:gs0SnL//M 519です
遅くなってすみません
皆さんありがとうございました
まず、宣言と定義の違いを理解していませんでした
同一プロジェクト中の別ソースにある関数を、宣言しないで呼び出せるのが何故か知りたいです
戻り値がint型だと暗黙の宣言で使えるようですが、戻り値がchar型の関数を呼び出せます
関数を呼び出すより前に宣言されているはずなので、先に関数を記述したソースが解析されているということ??
試しにその関数をmain関数の後に持ってくると当然コンパイルエラーになります
恐らく>>533に頂いた回答が近いと思うのですが、リンクを理解していないためか理解できません…
勉強不足で質問するのも申し訳ないのですが、ご回答いただけると嬉しいです
遅くなってすみません
皆さんありがとうございました
まず、宣言と定義の違いを理解していませんでした
同一プロジェクト中の別ソースにある関数を、宣言しないで呼び出せるのが何故か知りたいです
戻り値がint型だと暗黙の宣言で使えるようですが、戻り値がchar型の関数を呼び出せます
関数を呼び出すより前に宣言されているはずなので、先に関数を記述したソースが解析されているということ??
試しにその関数をmain関数の後に持ってくると当然コンパイルエラーになります
恐らく>>533に頂いた回答が近いと思うのですが、リンクを理解していないためか理解できません…
勉強不足で質問するのも申し訳ないのですが、ご回答いただけると嬉しいです
535デフォルトの名無しさん (アウアウウー Sac7-wghP)
2022/05/25(水) 01:31:16.14ID:Q47fXgzra 呼び出せないと思ったほうが良い
536はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a3e-eugl)
2022/05/25(水) 01:35:46.79ID:9QZiEKx+0 >>534
コンパイラは宣言の辻褄が合っていると「仮定して」処理する。
宣言の辻褄が合うようにするのはプログラマの責任。
辻褄が合ってないときにどうなるかは言語仕様上は未定義のなのでなんとなく動いているように見えてもあてにならない。
コンパイラは宣言の辻褄が合っていると「仮定して」処理する。
宣言の辻褄が合うようにするのはプログラマの責任。
辻褄が合ってないときにどうなるかは言語仕様上は未定義のなのでなんとなく動いているように見えてもあてにならない。
537デフォルトの名無しさん (ワッチョイ 5b10-eugl)
2022/05/25(水) 09:42:18.14ID:mSxNHOMI0 C言語に慣れない頃はmain関数はファイルの最後に書いて、
呼び出される順番にソースの上の方に関数追加していったわ。
-----ccc.c-----
int FuncB(){
return 1;
}
int FuncA(){
return FuncB();
}
int main() {
return FuncA();
}
呼び出される順番にソースの上の方に関数追加していったわ。
-----ccc.c-----
int FuncB(){
return 1;
}
int FuncA(){
return FuncB();
}
int main() {
return FuncA();
}
538デフォルトの名無しさん (アウアウウー Sac7-wghP)
2022/05/25(水) 10:12:31.53ID:dvdfNrTHa539デフォルトの名無しさん (ワッチョイ 0eae-SjAR)
2022/05/25(水) 10:18:58.73ID:aeVycjmX0 間接再帰ができない間だけ通用する
540デフォルトの名無しさん (スッップ Sdba-otPX)
2022/05/25(水) 11:11:34.92ID:f6RSTkPjd541デフォルトの名無しさん (スッップ Sdba-otPX)
2022/05/25(水) 11:27:04.22ID:f6RSTkPjd >>534
何を悩んでるのかよくわからないが
今のCPUは8ビットレジスタなんて持ってないので戻り値がintでもcharでも戻り値の入ってるレジスタは同じになる
だから戻り値charの関数を暗黙のint関数として呼び出しても結果は特に問題なく使えるはず
ただ8ビットより上のビットにゴミ(不定値)が入ってる可能性はある
何を悩んでるのかよくわからないが
今のCPUは8ビットレジスタなんて持ってないので戻り値がintでもcharでも戻り値の入ってるレジスタは同じになる
だから戻り値charの関数を暗黙のint関数として呼び出しても結果は特に問題なく使えるはず
ただ8ビットより上のビットにゴミ(不定値)が入ってる可能性はある
542はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a3e-eugl)
2022/05/25(水) 11:49:22.28ID:9QZiEKx+0543デフォルトの名無しさん (ワッチョイ 0eae-SjAR)
2022/05/25(水) 11:52:13.52ID:aeVycjmX0 やはりCを上っ面でなく根っこから理解するにはアセンブラの知識も必要だな
544デフォルトの名無しさん (ワッチョイ 5b10-eugl)
2022/05/25(水) 12:06:51.94ID:mSxNHOMI0 コンパイラやアセンブラのnパス(ソースを読み下す回数)って仕様を思い出した。
DOS時代にアセンブラは2パスでCコンパイラは1パスが普通だと聞いて、
Cで先に関数/変数を宣言、定義しないとエラーになるのは1パスでコンパイラが知らない関数/変数が出てくるからだと思ってた。
正しい理解かは知らない。ラベルとかはgotoの後に出てくることもあるし。
DOS時代にアセンブラは2パスでCコンパイラは1パスが普通だと聞いて、
Cで先に関数/変数を宣言、定義しないとエラーになるのは1パスでコンパイラが知らない関数/変数が出てくるからだと思ってた。
正しい理解かは知らない。ラベルとかはgotoの後に出てくることもあるし。
545はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a3e-eugl)
2022/05/25(水) 13:02:50.97ID:9QZiEKx+0 >>544
バックパッチで処理できるのでコードの頭から読みなおす必要はないよ。
知らない名前が出てきたときに型かもしれないし変数かもしれないってのでは構文解析が難しくなるが
goto の後ろにくるのはどこかで定義されているラベルだと決め打ちできるから単純な処理でいける。
(gcc だとアドレス (を生成する式) を goto に与えることも出来るように拡張されてるからもうちょっと複雑なことをしてると思う。)
バックパッチで処理できるのでコードの頭から読みなおす必要はないよ。
知らない名前が出てきたときに型かもしれないし変数かもしれないってのでは構文解析が難しくなるが
goto の後ろにくるのはどこかで定義されているラベルだと決め打ちできるから単純な処理でいける。
(gcc だとアドレス (を生成する式) を goto に与えることも出来るように拡張されてるからもうちょっと複雑なことをしてると思う。)
546デフォルトの名無しさん (スフッ Sdba-cjEd)
2022/05/25(水) 16:04:37.76ID:ppEY2jmgd gccはプロセス置換なんかで生成した一時ファィルを食わせられないから、少なくとも2回以上はソース通読してると思われる
547デフォルトの名無しさん (ワッチョイ 6301-dv9W)
2022/05/25(水) 19:05:44.16ID:pzbMw6fx0 関数コメントを書く場所だけど、
➀ヘッダファイルの関数プロトタイプ宣言の頭に関数仕様コメントを書く
②Cファイルの関数実装本体の頭に関数仕様コメントを書く
③両方に同じ内容を書く
のどれが今の多数派?
昔は②が多かった印象だけど最近は➀が主流なのかな?
➀ヘッダファイルの関数プロトタイプ宣言の頭に関数仕様コメントを書く
②Cファイルの関数実装本体の頭に関数仕様コメントを書く
③両方に同じ内容を書く
のどれが今の多数派?
昔は②が多かった印象だけど最近は➀が主流なのかな?
548デフォルトの名無しさん (ワッチョイ 5bcf-X+K5)
2022/05/25(水) 19:22:25.67ID:6XrkLlxn0 外部仕様ならユーザーに読ませるからヘッダだし、内部仕様なら逆に見せるべきでないから本体、とかだろ。
549デフォルトの名無しさん (ワッチョイ 5b10-eugl)
2022/05/26(木) 07:54:06.06ID:BbTLBX4q0 将来Libファイル化とか考えると①の方が合理的かなとは思う。
VisualStudioの関数参照で、自動でコメントも表示されたと思ったけど、
そのときは①と②どっちが優先だったのかな?
VisualStudioの関数参照で、自動でコメントも表示されたと思ったけど、
そのときは①と②どっちが優先だったのかな?
550デフォルトの名無しさん (ワッチョイ daf1-XNUb)
2022/05/27(金) 16:12:39.64ID:01BAkppM0 質問失礼します
あるCのプロジェクトを見ていて
typedef struct X X;
struct X { ... some fields ... };
って記述がソース中の随所で見受けられますが、これ以前にもstruct Xの宣言がないのにtypedefできるのが非直感的に感じられます。これはtypedefを宣言するのと同時に、初めてここでstruct Xも宣言しているってことなのでしょうか?
あるCのプロジェクトを見ていて
typedef struct X X;
struct X { ... some fields ... };
って記述がソース中の随所で見受けられますが、これ以前にもstruct Xの宣言がないのにtypedefできるのが非直感的に感じられます。これはtypedefを宣言するのと同時に、初めてここでstruct Xも宣言しているってことなのでしょうか?
551デフォルトの名無しさん (スッップ Sdba-otPX)
2022/05/27(金) 17:20:28.72ID:HNJHF6TRd それは構造体メンバーの中にその構造体自身へのポインタを含めさせるためのトリックじゃなかったかな
struct HOGE{
色々なメンバー…
struct HOGE *next;
};
とやろうとするとHOGEの定義はまだ終わってないのでundefinedエラーになる
typedef struct HOGE STRUCT_HOGE;
struct HOGE{
色々なメンバー…
STRUCT_HOGE *next;
};
これなら通るはず(?)
struct HOGE{
色々なメンバー…
struct HOGE *next;
};
とやろうとするとHOGEの定義はまだ終わってないのでundefinedエラーになる
typedef struct HOGE STRUCT_HOGE;
struct HOGE{
色々なメンバー…
STRUCT_HOGE *next;
};
これなら通るはず(?)
552デフォルトの名無しさん (ワッチョイ 9aad-SjAR)
2022/05/27(金) 17:23:59.27ID:Dxs4BKy40 え?それ大丈夫じゃなかったっけ?
553デフォルトの名無しさん (ワッチョイ 9aad-SjAR)
2022/05/27(金) 17:32:35.88ID:Dxs4BKy40 struct でメンバの定義がない不完全型はポインタ変数のみ宣言出来るので再帰的なやつも大丈夫だ。
ポインタはサイズが分かるから。
ポインタでない普通の変数はサイズが分からないので作れない。
ポインタはサイズが分かるから。
ポインタでない普通の変数はサイズが分からないので作れない。
554はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5a3e-eugl)
2022/05/27(金) 17:59:48.73ID:/qASUmj+0 >>550
その場合の typedef struct X X; の struct X は C99 の 6.7.2.3 にある
「不完全構造体型又は不完全共用体型を宣言し,その型のタグとして識別子を宣言する」
に該当する。
つまり struct X の宣言にもなっているという解釈で正しい。
あえて typedef を先に書く必然性はないんだが……
仕様にはこういう形でも書けるという例が載っているので考えなしに真似してるだけかもしれん。
その場合の typedef struct X X; の struct X は C99 の 6.7.2.3 にある
「不完全構造体型又は不完全共用体型を宣言し,その型のタグとして識別子を宣言する」
に該当する。
つまり struct X の宣言にもなっているという解釈で正しい。
あえて typedef を先に書く必然性はないんだが……
仕様にはこういう形でも書けるという例が載っているので考えなしに真似してるだけかもしれん。
555デフォルトの名無しさん (ワッチョイ daf1-XNUb)
2022/05/27(金) 18:06:40.28ID:01BAkppM0 >>554
詳しい説明ありがとうございました
確かによくよく考えると
typedef struct X { ... some fields ... } X;
と同じでしたね
こちらは違和感ないんですけど確かにこちらもいきなりtypedefのdeclspec内でstruct X { ... some fields ... }初めて使ってますね
詳しい説明ありがとうございました
確かによくよく考えると
typedef struct X { ... some fields ... } X;
と同じでしたね
こちらは違和感ないんですけど確かにこちらもいきなりtypedefのdeclspec内でstruct X { ... some fields ... }初めて使ってますね
556デフォルトの名無しさん (ワッチョイ 6301-pPWi)
2022/05/27(金) 20:53:33.56ID:v5HQQ34i0 struct Y;
struct X {
struct Y* next;
};
struct Y は struct X と同じでした
struct X {
struct Y* next;
};
struct Y は struct X と同じでした
557デフォルトの名無しさん (ワッチョイ 9a79-MYiA)
2022/05/27(金) 22:59:30.30ID:Uk6q3si00 エアプ使いばかり
558デフォルトの名無しさん (ワッチョイ 2b2c-2OYr)
2022/05/28(土) 11:23:05.30ID:81XaDMLN0 typedef struct X {
struct X *hage;
char a[0];
} X;
これはokだが
typedef struct X {
X *hage;
char a[0];
} X;
これはだめやろ
struct X *hage;
char a[0];
} X;
これはokだが
typedef struct X {
X *hage;
char a[0];
} X;
これはだめやろ
559デフォルトの名無しさん (アウアウウー Sac5-MppQ)
2022/05/28(土) 13:26:19.91ID:CfHVy9pGa よくてもよさそうだけどなあ
560はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/05/28(土) 15:18:56.42ID:IqCM7SI40 C++ ではアリだが、それはそれとして配列の大きさは 0 は駄目だよ。
561デフォルトの名無しさん (アウアウウー Sac5-AEoY)
2022/05/28(土) 18:03:45.61ID:2wkU6YYXa 配列要素0個はgccの拡張やね、標準規格に取り込んで欲しいわ
562デフォルトの名無しさん (ワッチョイ 2b63-yO3c)
2022/05/28(土) 18:11:56.00ID:I3uIL+k90 いっそのこと要素数指定無しの配列も認めて欲しい
563デフォルトの名無しさん (ワッチョイ 4101-X7lA)
2022/05/28(土) 18:22:29.20ID:GsM4WAAy0564ハノン ◆QZaw55cn4c (US 0H4d-RPpo)
2022/05/28(土) 18:26:01.93ID:HcUv+NxjH565デフォルトの名無しさん (ワッチョイ d901-2OYr)
2022/05/28(土) 18:53:41.27ID:6Sv+ENTH0 NFTゲームでのユーザー活動が20倍増加 DappRadarレポート
分散型アプリデータ企業DappRadarは20日、Blockchain Game Alliance(BGA)と共同で、
ブロックチェーンゲームについてのレポートを発表。2022年第1四半期(1−3月期)は、
前年同期と比べて、ユーザーの活動が2,000%増加したという。その他、様々な角度
からデータを報告した。
ブロックチェーン/NFTゲームへの第1四半期の投資総額は、約3,200億円(25億ドル)に
到達した。レポートは、もしこのペースが維持されれば、2022年全体の投資額は約1.3兆
円(100億ドル)に達する可能性もあると予測している。なお、2021年の年間投資総額は
約5,100億円(40億ドル)であった。
レポートによると、22年1Qの全ブロックチェーンアクティビティのうち、分散型ゲームアプリ
ケーションによるものが半分以上(52%)を占めていたという。ゲームをプレイすることで
お金を稼ぐことが出来る「Play-to-Earn(P2E)」のゲームもこれを牽引している。
分散型アプリデータ企業DappRadarは20日、Blockchain Game Alliance(BGA)と共同で、
ブロックチェーンゲームについてのレポートを発表。2022年第1四半期(1−3月期)は、
前年同期と比べて、ユーザーの活動が2,000%増加したという。その他、様々な角度
からデータを報告した。
ブロックチェーン/NFTゲームへの第1四半期の投資総額は、約3,200億円(25億ドル)に
到達した。レポートは、もしこのペースが維持されれば、2022年全体の投資額は約1.3兆
円(100億ドル)に達する可能性もあると予測している。なお、2021年の年間投資総額は
約5,100億円(40億ドル)であった。
レポートによると、22年1Qの全ブロックチェーンアクティビティのうち、分散型ゲームアプリ
ケーションによるものが半分以上(52%)を占めていたという。ゲームをプレイすることで
お金を稼ぐことが出来る「Play-to-Earn(P2E)」のゲームもこれを牽引している。
566デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/05/28(土) 19:27:23.65ID:72vE6z5l0 >>564
VLAはC++ではいらない子
VLAはC++ではいらない子
567デフォルトの名無しさん (アウアウウー Sac5-AEoY)
2022/05/28(土) 20:00:35.42ID:VWmT0B4pa568デフォルトの名無しさん (ワッチョイ 13f1-VznW)
2022/05/28(土) 20:00:39.40ID:TcgqTRp90 >>565
NFTはゲームに絡んでいる部分だけは面白そう
NFTはゲームに絡んでいる部分だけは面白そう
569デフォルトの名無しさん (ワッチョイ 4101-VwMx)
2022/05/28(土) 20:13:20.50ID:q7Q7UvgS0 struct Header {
int total_size;
char naemestr[1];
};
本質的には int total_size + naemestr可変としたいが
sizeof(struct Header) は char naemestr[1]; を含むのでキモいことになる
int total_size;
char naemestr[1];
};
本質的には int total_size + naemestr可変としたいが
sizeof(struct Header) は char naemestr[1]; を含むのでキモいことになる
570はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/05/28(土) 20:21:20.88ID:IqCM7SI40571ハノン ◆QZaw55cn4c (US 0H4d-RPpo)
2022/05/28(土) 20:46:38.14ID:HcUv+NxjH572ハノン ◆QZaw55cn4c (US 0H4d-RPpo)
2022/05/28(土) 20:47:26.50ID:HcUv+NxjH >>567
[1]だろうと[0] だろうとどうでもよくて、問題は可変長構造体がC++では認められているか否かの話なのでは?
[1]だろうと[0] だろうとどうでもよくて、問題は可変長構造体がC++では認められているか否かの話なのでは?
574デフォルトの名無しさん (アウアウウー Sac5-MppQ)
2022/05/28(土) 21:12:45.84ID:CfHVy9pGa 動的に変わらんのに可変長っていうの違和感あるわ
575デフォルトの名無しさん (ワッチョイ 4101-VwMx)
2022/05/28(土) 21:12:59.17ID:q7Q7UvgS0 >>570
最後の要素が 不完全型な some-type [ ] に限り sizeof は そのメンバを含まない大きさを返すけど
some-type [1] の場合にはそのメンバを含んじゃう
https://ideone.com/7GmZkR
最後の要素が 不完全型な some-type [ ] に限り sizeof は そのメンバを含まない大きさを返すけど
some-type [1] の場合にはそのメンバを含んじゃう
https://ideone.com/7GmZkR
576はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/05/28(土) 21:34:55.35ID:IqCM7SI40 >>575
「よりよい方法があるのであえて 1 を書く必要はないじゃろ」というのが主旨。
「よりよい方法があるのであえて 1 を書く必要はないじゃろ」というのが主旨。
577デフォルトの名無しさん (ワッチョイ 4101-VwMx)
2022/05/28(土) 22:06:06.45ID:q7Q7UvgS0 了解
578ハノン ◆QZaw55cn4c (US 0H4d-RPpo)
2022/05/28(土) 22:46:10.65ID:Fu9mRLk6H579デフォルトの名無しさん (スッププ Sdb3-4gx5)
2022/05/29(日) 00:52:18.99ID:TsbfhcxCd まあキモいけどサイズが実際より大きすぎるぶんには問題は起きない
580デフォルトの名無しさん (US 0H4d-RPpo)
2022/05/29(日) 01:10:06.53ID:9R680m3FH >>579
キモい?アセンブラでは普通にやりますよ‥‥
キモい?アセンブラでは普通にやりますよ‥‥
581デフォルトの名無しさん (ワッチョイ 2b63-yO3c)
2022/05/29(日) 01:18:23.26ID:J7SFw8MM0 そうだね、アセンブラを使えば良い
582デフォルトの名無しさん (ワッチョイ 9379-3jko)
2022/05/29(日) 02:00:28.40ID:MBI5r2Hn0 最後が可変の構造体はchar naemestr[1]; なんて定義せずに
#definne Header_getNaemestr(p) (char *)((struct Header*)(p) + 1)
みたいに書く方法もあるよ
#definne Header_getNaemestr(p) (char *)((struct Header*)(p) + 1)
みたいに書く方法もあるよ
583デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/05/29(日) 05:45:19.04ID:7E0AvYTo0584はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/05/29(日) 08:46:06.37ID:+aZOCBrD0 C++ の提案としては出てる。
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1039r0.html
今のところ C++ に取り入れられる見込みはない模様。
C で実績があるわけだし、変な矛盾はないと思うんだが
仕様として整合性をとるのは別の大変さがあるんかね?
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1039r0.html
今のところ C++ に取り入れられる見込みはない模様。
C で実績があるわけだし、変な矛盾はないと思うんだが
仕様として整合性をとるのは別の大変さがあるんかね?
585デフォルトの名無しさん (ワッチョイ 4101-VwMx)
2022/05/29(日) 12:15:20.33ID:IcJAaUL30 ビットマップのカラーテーブル部
データフォーマットの中間部分に鎮座してる可変
データフォーマットの中間部分に鎮座してる可変
586デフォルトの名無しさん (アウアウウー Sac5-MppQ)
2022/05/29(日) 12:46:49.46ID:vh7xwuy0a データ部の位置が変なリンクリスト嫌いだわ
587デフォルトの名無しさん (ワッチョイ 2b63-yO3c)
2022/05/29(日) 12:59:38.36ID:J7SFw8MM0 XEvent にはとてもお世話になりました
今は使う機会が無くなりましたが
今は使う機会が無くなりましたが
588デフォルトの名無しさん (ブーイモ MM4b-/szq)
2022/05/29(日) 13:00:08.05ID:lS+LcIfWM リンクリストでlist_head使ってないってこと?
589デフォルトの名無しさん (US 0H4d-RPpo)
2022/05/29(日) 13:33:49.79ID:9R680m3FH >>583
遅れてるからですよ、C89 から話題になっていたことを理解していないからそんな間違いをするのです‥‥
遅れてるからですよ、C89 から話題になっていたことを理解していないからそんな間違いをするのです‥‥
590デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/05/31(火) 11:53:16.64ID:B+MkXCVE0591デフォルトの名無しさん (スフッ Sdb3-qbWD)
2022/06/01(水) 11:41:44.19ID:+HI81M8pd >>546
そういえば愛用のtccはストリームからも読み込めるけど
まあ全部内部バッファに溜めればワンパスに見えるし、結局のところはわからんぬ
すくなくとも論理的に2パスする必要のある言語仕様的は思い浮かばない
そういえば愛用のtccはストリームからも読み込めるけど
まあ全部内部バッファに溜めればワンパスに見えるし、結局のところはわからんぬ
すくなくとも論理的に2パスする必要のある言語仕様的は思い浮かばない
592デフォルトの名無しさん (スップ Sdb3-4gx5)
2022/06/01(水) 16:22:13.14ID:UJNXiTT3d プリプロセッサで一度マクロ展開してからコンパイラに渡してるから2パスと言えなくもない
593ハノン ◆QZaw55cn4c (ワッチョイ b3c4-RPpo)
2022/06/01(水) 21:59:27.44ID:8/80xBhO0594デフォルトの名無しさん (ワッチョイ 09ad-dhW+)
2022/06/01(水) 23:11:11.40ID:vvQTEkHX0 pascalってキラーアプリとかあったっけ
595デフォルトの名無しさん (ワッチョイ 2b63-yO3c)
2022/06/01(水) 23:13:36.43ID:f45OwcOU0 Janeなんたらは有名かもだが、他は知らない
596デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/06/02(木) 05:56:20.78ID:mFaN5Fu80 Cはpascalへのアンチテーゼでもある
597デフォルトの名無しさん (アウアウウー Sac5-wlTv)
2022/06/02(木) 06:19:33.58ID:My4Fa6/ja >>594
TeX
TeX
598デフォルトの名無しさん (スップ Sdb3-4gx5)
2022/06/02(木) 18:56:01.53ID:5oSm2G9pd >>593
アセンブラ以外のすべての言語は退廃と怠惰の産物と心得よ
アセンブラ以外のすべての言語は退廃と怠惰の産物と心得よ
599デフォルトの名無しさん (ワッチョイ ab02-qbWD)
2022/06/02(木) 19:27:29.17ID:M0/peWx+0 怠惰は美徳なり
600デフォルトの名無しさん (ワッチョイ 4101-X7lA)
2022/06/02(木) 20:43:06.06ID:9S2EfN690 プログラマー三大美徳
怠惰、短気、傲慢
怠惰、短気、傲慢
601デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/06/03(金) 06:04:19.89ID:2JsQlaOH0 傲慢か
既存のコード無視して上書き的なメンテするやつか?
既存のコード無視して上書き的なメンテするやつか?
602デフォルトの名無しさん (ワッチョイ abae-11kL)
2022/06/03(金) 06:39:00.03ID:2JsQlaOH0603デフォルトの名無しさん (ワッチョイ 5110-yO3c)
2022/06/03(金) 07:54:41.09ID:nRSHAlo70 DOS時代にコプロセッサとか言うのあったけど、実際に使われてたの?
解説書を見ること無くWin時代に入っちゃって。
解説書を見ること無くWin時代に入っちゃって。
604デフォルトの名無しさん (アウアウウー Sac5-MppQ)
2022/06/03(金) 08:05:52.15ID:4GI8EAsla FPUはあるとないで全然違ったよ
605デフォルトの名無しさん (ブーイモ MMab-g8Zs)
2022/06/03(金) 08:08:00.81ID:AsLopwGrM 今でもARMのFPUとかいろいろ使われてるよ
606はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/06/03(金) 09:38:08.46ID:ysQR9TY90607はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 133e-yO3c)
2022/06/03(金) 10:19:43.88ID:ysQR9TY90 GPU もある種のコプロセッサと言えなくもない。 そういう分類の仕方はあまりしないが……。
608デフォルトの名無しさん (ワッチョイ 2bbb-WuQG)
2022/06/03(金) 13:47:50.04ID:jxOrvhuY0 当時、コプロセッサを「子プロセッサ」だと思ってたのを思い出す。
609デフォルトの名無しさん (スップ Sdb3-4gx5)
2022/06/03(金) 19:52:40.79ID:tmTTQ0Rod610デフォルトの名無しさん (ワッチョイ 4101-VwMx)
2022/06/03(金) 19:59:24.89ID:jmq+XGTN0 PentiumのFPUバグ…
611デフォルトの名無しさん (アウアウウー Sac5-MppQ)
2022/06/03(金) 20:14:45.52ID:sSA68QUoa 487とは
612デフォルトの名無しさん (ワッチョイ 4101-X7lA)
2022/06/03(金) 20:48:03.52ID:LlSBEtTM0 かつてのARMはFPUどころかMMU、Cacheまでコプロ命令で制御してたな。
613デフォルトの名無しさん (アウアウウー Sac5-iQeq)
2022/06/03(金) 20:53:33.97ID:/AcAT3MUa614デフォルトの名無しさん (ワッチョイ 56bd-K8bC)
2022/06/05(日) 02:34:40.58ID:YsWbAm+I0 『コプロ』なるLSIを追加すると、掛け算を割り算が使えるようになる。
8~16ビット全盛時代、その文句の意味が分からなかったなあ。
BASICで普通に四則演算していたから。
8~16ビット全盛時代、その文句の意味が分からなかったなあ。
BASICで普通に四則演算していたから。
615デフォルトの名無しさん (ワッチョイ c6ae-+66E)
2022/06/05(日) 05:54:10.62ID:7J0TRviH0 コプロラグニー
616デフォルトの名無しさん (スッップ Sdea-maWv)
2022/06/05(日) 06:54:01.45ID:pIMmlsGTd >>614
何もかも間違ってるw
何もかも間違ってるw
617デフォルトの名無しさん (アウアウウー Sa11-ei9q)
2022/06/05(日) 07:36:26.69ID:AvwHMxMpa >>614
未だに分かってないな
未だに分かってないな
618デフォルトの名無しさん (ワッチョイ c6ae-+66E)
2022/06/05(日) 07:41:32.89ID:7J0TRviH0 CPUが電卓を使うというのが何ともミステリアスだった
619デフォルトの名無しさん (スプッッ Sd72-5vKd)
2022/06/06(月) 16:32:55.98ID:qbvku5vVd **が理解できない
教えてくだちい
教えてくだちい
620デフォルトの名無しさん (スッップ Sdea-maWv)
2022/06/06(月) 21:07:32.00ID:1f/zEEFPd ポインタのポインタ?
621デフォルトの名無しさん (ブーイモ MMde-pzfg)
2022/06/06(月) 21:24:19.81ID:7xDnzGS8M 間接参照の間接参照だろ
経験豊富なら余裕で見分けられる
経験豊富なら余裕で見分けられる
622デフォルトの名無しさん (ワッチョイ 8646-Q5o7)
2022/06/06(月) 21:37:13.48ID:v7exk6pA0 ポインタは記法が悪いよ
関数ポインタはもっと悪い
関数ポインタはもっと悪い
623デフォルトの名無しさん (ワッチョイ 6d01-m5EP)
2022/06/06(月) 22:15:21.61ID:uQ+SySK50 宣言のときの * と、指し先の実体を求める *
624デフォルトの名無しさん (ワッチョイ 8663-Rebr)
2022/06/06(月) 23:45:42.93ID:9jLV7J2l0 a***b
625デフォルトの名無しさん (ワッチョイ caad-+66E)
2022/06/08(水) 02:10:57.84ID:KYIfcmSY0 c=a/*b;
626デフォルトの名無しさん (ワッチョイ 1510-Rebr)
2022/06/08(水) 07:54:23.07ID:CNk0rgMY0 int a=1;
int *b=&a;
int **c=&b;
int d=0;
d=**c; /* d == a */
int *b=&a;
int **c=&b;
int d=0;
d=**c; /* d == a */
627619 (スップ Sdca-5vKd)
2022/06/08(水) 08:41:18.56ID:NWnFU//jd 少しわかった気がします
試してみて理解します
皆さんありがとうございます
試してみて理解します
皆さんありがとうございます
628デフォルトの名無しさん (アウアウウー Sa11-fRoS)
2022/06/08(水) 16:31:44.77ID:KT22GtKja 関数のポインタとか
関数のポインタを引数に持つ関数のポインタとか
関数のポインタを引数に持つ関数のポインタとか
629デフォルトの名無しさん (エムゾネ FFea-maWv)
2022/06/08(水) 17:05:53.27ID:V/Z/RpWDF typedefすればいい
typedef int AAA_FUNC( int, char *, ...);
int AAA_caller( int, AAA_FUNC*);
typedef int AAA_FUNC( int, char *, ...);
int AAA_caller( int, AAA_FUNC*);
630デフォルトの名無しさん (ワッチョイ 1510-Rebr)
2022/06/09(木) 11:32:24.20ID:ZhHr/cTg0 >**
なんで char **argv が思い浮かばなかったかなぁ・・・。
なんで char **argv が思い浮かばなかったかなぁ・・・。
631デフォルトの名無しさん (ワッチョイ c6ae-+66E)
2022/06/09(木) 13:06:08.29ID:0WQEetb00 char *argv[]という初心者をいたぶる陰険な罠を避けたかったんじゃね?
632デフォルトの名無しさん (ワッチョイ a968-esN/)
2022/06/09(木) 15:57:22.96ID:lMNj+E1f0 GNU MakeよりCMakeが優れてるのはどの辺でしょうか?
633はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0a3e-Rebr)
2022/06/09(木) 16:49:53.93ID:k8dtcEck0634デフォルトの名無しさん (ワッチョイ a968-esN/)
2022/06/09(木) 17:00:06.87ID:lMNj+E1f0 >>633
そうなんですね。ありがとうございます
そうなんですね。ありがとうございます
635デフォルトの名無しさん (ワッチョイ c602-nB9k)
2022/06/10(金) 11:33:59.29ID:rZTjX0hE0 宣言/デリファレンスの記法が悪いというより、=が悪い
両辺を等値(あるいはそうする=代入)というセマンティクスと解離してる
両辺を等値(あるいはそうする=代入)というセマンティクスと解離してる
636デフォルトの名無しさん (ワッチョイ c602-nB9k)
2022/06/10(金) 11:41:37.01ID:rZTjX0hE0 初期化の=は左辺ではなく、左辺で宣言されるものを指してるわけで、頭の中で=以外の記号に置き換えて読むといいかも
637デフォルトの名無しさん (ワッチョイ c6ae-+66E)
2022/06/10(金) 13:18:43.35ID:PT4Yy0z80 =と==は、はっきり区別されてるだろ
連動して常に等しいという規則ならマクロでやればいいし
連動して常に等しいという規則ならマクロでやればいいし
638デフォルトの名無しさん (ワッチョイ 1510-Rebr)
2022/06/10(金) 13:19:17.11ID:HL4tZsFs0 A=1
B=2
C=3
A=B=C
PRINT A,B,C
B=2
C=3
A=B=C
PRINT A,B,C
639デフォルトの名無しさん (ワッチョイ a969-lCJq)
2022/06/10(金) 16:02:05.50ID:5CLHXu7x0 >>638
BとCが等しいかの比較結果が A に入る
BとCが等しいかの比較結果が A に入る
640デフォルトの名無しさん (スッププ Sdea-maWv)
2022/06/10(金) 22:32:37.38ID:ExBywScCd C言語ではA=B=C;でAとBにCの値が入るはずだが
641デフォルトの名無しさん (オッペケ Sr87-vhci)
2022/06/11(土) 02:33:23.42ID:yqb/24klr Cの比較は==だからね
642デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/11(土) 04:29:30.42ID:3J9oG0Sq0 BASICだろ
643デフォルトの名無しさん (スッップ Sd1f-7fB6)
2022/06/11(土) 08:08:56.72ID:5lUjqa1id なんのスレ
644デフォルトの名無しさん (ラクッペペ MM7f-pgzz)
2022/06/11(土) 08:27:12.87ID:TYekU7UkM C
A=1, B=1, C=1
BASIC
A=-1, B=1, C=1
A=1, B=1, C=1
BASIC
A=-1, B=1, C=1
645デフォルトの名無しさん (ワッチョイ 03ad-b0/F)
2022/06/11(土) 15:01:54.40ID:s3NqXqGx0 ちょー初心者
引数付きの関数で引数が空のときにも意味を持たせたい
nanntoka(char adress)なんて関数で
呼び出し側がnantoka()と書いたときも意味を持たせる場合どうすりゃいいの?
null判定でいいんですか?
引数付きの関数で引数が空のときにも意味を持たせたい
nanntoka(char adress)なんて関数で
呼び出し側がnantoka()と書いたときも意味を持たせる場合どうすりゃいいの?
null判定でいいんですか?
647デフォルトの名無しさん (ワッチョイ 03ad-b0/F)
2022/06/11(土) 15:15:18.40ID:s3NqXqGx0 だよねー
やっぱ数値は工夫のしようがないから無理なのかー
やー助かりました
やっぱ数値は工夫のしようがないから無理なのかー
やー助かりました
648デフォルトの名無しさん (ワッチョイ 0310-GGE9)
2022/06/11(土) 15:45:32.03ID:NTE9LoY80 C++なら出来るんだっけ。
649デフォルトの名無しさん (ワッチョイ 63d2-asUV)
2022/06/11(土) 15:48:15.36ID:nZnmEekY0 C++にはデフォルト引数があるし
オーバーロードもできる
Cでできるかは知らん
int f(const char*s = nullptr);
オーバーロードもできる
Cでできるかは知らん
int f(const char*s = nullptr);
650デフォルトの名無しさん (ワッチョイ cf46-IaEQ)
2022/06/11(土) 16:27:10.38ID:dptRvNRm0 普通にはできないからやるな
(1) printfみたいにやる方法
(2) __VA_ARGS__でやる方法
があるぞい
(1) printfみたいにやる方法
(2) __VA_ARGS__でやる方法
があるぞい
651デフォルトの名無しさん (ワッチョイ 2301-UmXv)
2022/06/11(土) 17:10:24.92ID:t7XDMYlk0 >>650
printfみたいな可変引数でも第一引数は必要なので純粋に引数なしってのはできなかったはず。
printfみたいな可変引数でも第一引数は必要なので純粋に引数なしってのはできなかったはず。
652デフォルトの名無しさん (アウアウウー Sa67-QAJi)
2022/06/11(土) 17:22:53.63ID:lqPwOW/ya _Genericとかみんな使う?
653デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/11(土) 17:28:25.28ID:YjAHf+RK0 printf(NULL);
悪魔の召喚
悪魔の召喚
654デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/12(日) 05:58:21.10ID:rhQkMiRe0 >>651
できるぞ
第一引数なしで可変引数にするときは
void func();
と、省略記号なしで宣言する
ただし言うまでもないが
func();
で呼び出したときの第一引数は不定なので
使い途はない
できるぞ
第一引数なしで可変引数にするときは
void func();
と、省略記号なしで宣言する
ただし言うまでもないが
func();
で呼び出したときの第一引数は不定なので
使い途はない
655デフォルトの名無しさん (スッップ Sd1f-7fB6)
2022/06/12(日) 07:27:33.25ID:Tbig4rXQd プロトタイプ省略すればなんでもできるw
656デフォルトの名無しさん (ワッチョイ ff01-MmlY)
2022/06/12(日) 08:41:18.11ID:LzXoNMHn0657デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/12(日) 15:51:07.84ID:rhQkMiRe0658はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-GGE9)
2022/06/12(日) 16:04:25.30ID:7muDz8Uq0659デフォルトの名無しさん (ワッチョイ ff01-MmlY)
2022/06/12(日) 16:07:16.41ID:LzXoNMHn0660デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/12(日) 16:17:07.73ID:2T6Ast9Ed661デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 06:48:01.95ID:BOW2YZM80662デフォルトの名無しさん (スップ Sd1f-asUV)
2022/06/13(月) 08:40:16.72ID:si/cekt2d int func(void); と
int func(...); に対する言及なしで
int func(); だけ出てきてるからまともな議論じゃないと思ってスルーしてたが
可変引数は >>651 で出てきてそれに合わせてるだけじゃねーの?
int func(...); に対する言及なしで
int func(); だけ出てきてるからまともな議論じゃないと思ってスルーしてたが
可変引数は >>651 で出てきてそれに合わせてるだけじゃねーの?
663デフォルトの名無しさん (スップ Sd1f-asUV)
2022/06/13(月) 08:54:28.35ID:si/cekt2d int func(void); だとそもそも引数なししか受け付けない。
int func(...); だと引数の型と個数を実装側が期待するものにしなければならない。間違えたら未定義動作。
int func(); だと引数の型がわからないまま関数を使う。間違えてたら未定義動作。
int func(...); の第1引数は普通は型を明示するから
int func(const char*, ...); のようになるが。
int func(...); だと引数の型と個数を実装側が期待するものにしなければならない。間違えたら未定義動作。
int func(); だと引数の型がわからないまま関数を使う。間違えてたら未定義動作。
int func(...); の第1引数は普通は型を明示するから
int func(const char*, ...); のようになるが。
664はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-GGE9)
2022/06/13(月) 09:33:56.73ID:zy+KupId0 >>661
いいえ。 一致しない引数で関数を呼出そうとすることが未定義です。
いいえ。 一致しない引数で関数を呼出そうとすることが未定義です。
665デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 10:21:00.47ID:BOW2YZM80666はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-GGE9)
2022/06/13(月) 10:32:48.37ID:zy+KupId0667デフォルトの名無しさん (オッペケ Sr87-bFL4)
2022/06/13(月) 11:04:47.60ID:YiPaBYDZr 可変長引数では無理なのね
>>650の(2)の実装だとどうなるの
>>650の(2)の実装だとどうなるの
668はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-GGE9)
2022/06/13(月) 11:30:06.51ID:zy+KupId0 マクロでコンパウンドリテラルを作ってから (その個数と共に) 渡すという方法が取れると思う。
受け取る関数の型は >>645 の通りではできないけど。
#include <stdio.h>
#define foo(...) bar(sizeof((char[]){0, __VA_ARGS__}), (char[]){0, __VA_ARGS__})
void bar(int n, char* args) {
if(n==1) {
printf("no argment.\n");
} else {
printf("argment is %c.\n", args[1]);
}
}
int main(void) {
foo('a');
foo();
}
受け取る関数の型は >>645 の通りではできないけど。
#include <stdio.h>
#define foo(...) bar(sizeof((char[]){0, __VA_ARGS__}), (char[]){0, __VA_ARGS__})
void bar(int n, char* args) {
if(n==1) {
printf("no argment.\n");
} else {
printf("argment is %c.\n", args[1]);
}
}
int main(void) {
foo('a');
foo();
}
669デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 11:35:06.46ID:BOW2YZM80 >>666
話が噛み合っていないな
引数の数も型も比べる相手がいないのに矛盾しようがない
そもそも関数原型を用意しましょうなんていうのはCにおいて後付けの推奨事項に過ぎない
既存のコードを否定するのは影響が大きすぎるからな
話が噛み合っていないな
引数の数も型も比べる相手がいないのに矛盾しようがない
そもそも関数原型を用意しましょうなんていうのはCにおいて後付けの推奨事項に過ぎない
既存のコードを否定するのは影響が大きすぎるからな
670デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/13(月) 11:47:54.04ID:ir4nxYTVd671デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 11:48:35.71ID:cwJzo4Jp0 fn(void)
fn(int)
こういう2種類の引数を許容したとして
呼ばれた側はどう区別したら良いんだろう
コンパイル時に、別関数にアサインしたらいいのかな
その場合は受け取る関数も二つ用意してやらないと行けないな
fn(int)
こういう2種類の引数を許容したとして
呼ばれた側はどう区別したら良いんだろう
コンパイル時に、別関数にアサインしたらいいのかな
その場合は受け取る関数も二つ用意してやらないと行けないな
672デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/13(月) 11:52:40.59ID:ir4nxYTVd 区別はできない
引数を見ようとしたら結果は不定になる
単なるバグだよ
引数を見ようとしたら結果は不定になる
単なるバグだよ
673デフォルトの名無しさん (ワッチョイ cf46-IaEQ)
2022/06/13(月) 12:04:59.49ID:63W4P7Hh0 (2)の想定はこれだった
https://wandbox.org/permlink/EidRL6a8uqiszn2m
これも引数0個のときは##__VA_ARGS__か__VA_OPT__が必要で
まずかったな
https://wandbox.org/permlink/EidRL6a8uqiszn2m
これも引数0個のときは##__VA_ARGS__か__VA_OPT__が必要で
まずかったな
674デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/13(月) 12:13:41.38ID:Bgq8kBxf0 >>669 関数定義とその呼び出しを比較するって書かれてるのに、きみが無視するから噛み合わないんだよ。
675デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 12:16:16.46ID:BOW2YZM80676デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 12:18:15.22ID:BOW2YZM80677デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/13(月) 12:27:06.91ID:Bgq8kBxf0 >>675 その例だけなら矛盾しないね。でも引数渡せないから>645のやりたかったことはできないよね。
678デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/13(月) 15:54:04.85ID:BOW2YZM80 >>677
引数が空のときにに意味を持たせるんだったな
void func() { puts("no arguments are given"); }
int main()
{
func();
}
# さっき言った「罠」がまだここにある
引数が空のときにに意味を持たせるんだったな
void func() { puts("no arguments are given"); }
int main()
{
func();
}
# さっき言った「罠」がまだここにある
679デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/13(月) 16:19:19.10ID:Bgq8kBxf0680デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 16:34:27.02ID:cwJzo4Jp0 nantoka()と呼び出した場合、
呼び出された関数は、
nanntoka(char adress)として
スタック上からadressを取り出そうとするが
ここにある値はNULLではなく、不定値(所謂ゴミ)
NULL判定で回避はできない
呼び出された関数は、
nanntoka(char adress)として
スタック上からadressを取り出そうとするが
ここにある値はNULLではなく、不定値(所謂ゴミ)
NULL判定で回避はできない
681デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/13(月) 16:37:54.51ID:ir4nxYTVd >>678
Once again, once again, you're on your own
Who's to blame? who's to blame? it's such a shame
No-one ever hears your name, or plays your game
Once again, once again, you're on your own
Who's to blame? who's to blame? it's such a shame
No-one ever hears your name, or plays your game
682デフォルトの名無しさん (アウアウウー Sa67-MmlY)
2022/06/13(月) 18:45:35.75ID:+5MOS3Faa683デフォルトの名無しさん (スッップ Sd1f-asUV)
2022/06/13(月) 18:53:43.72ID:HsopZ7m+d グローバル変数 int exists_adress; を介してやれば引数あり/なし のモードを未定義動作を回避しつつ設定できそう
実用性など皆無だが
実用性など皆無だが
684デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/13(月) 19:17:35.58ID:ir4nxYTVd >>682
読み出すまではできるだろ
戻りアドレスか関係ないレジスタの退避値が入っている
問題はここではエラーにならず次にこの値で何かしようとしたらクラッシュする可能性が高い
これは単にコンパイラを騙して原因がわかりにくいエラーを出す方法なだけ
全くなんの意味もない
読み出すまではできるだろ
戻りアドレスか関係ないレジスタの退避値が入っている
問題はここではエラーにならず次にこの値で何かしようとしたらクラッシュする可能性が高い
これは単にコンパイラを騙して原因がわかりにくいエラーを出す方法なだけ
全くなんの意味もない
685デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 19:21:03.88ID:cwJzo4Jp0 分からないなら、試して見れば良いのに
686デフォルトの名無しさん (アウアウウー Sa67-MmlY)
2022/06/13(月) 19:40:41.59ID:+5MOS3Faa687デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 19:46:28.66ID:cwJzo4Jp0 読み出さなければ、実行時エラーにならないだろう
なんで、なるの?
なんで、なるの?
688デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 19:48:48.04ID:cwJzo4Jp0 呼ばれた側の関数は、adressに入っている(はずの)値を使うんだぜ
コード吐かなければ、それこそコンパイラのバグになるぞ
コード吐かなければ、それこそコンパイラのバグになるぞ
689デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 19:52:23.50ID:cwJzo4Jp0 実際に呼び出すコードは、呼ばれた側の関数に実装されるが、
呼び出し側の引数セットありと、引数セット無しで、
違うコードが実行されたりするのか?
呼び出し側の引数セットありと、引数セット無しで、
違うコードが実行されたりするのか?
690デフォルトの名無しさん (ワッチョイ 2301-UmXv)
2022/06/13(月) 20:03:29.40ID:Q7R38T3J0 何が起こっても不思議ではない未定義派と、コンパイラ実装は実質こうなってる派で話が噛み合うはずがないと思うの。
691デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 20:05:01.34ID:cwJzo4Jp0 信仰と言うより、勘違いだろう
恥ずかしくて後に引けなくなった感じ
恥ずかしくて後に引けなくなった感じ
692デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 20:09:56.04ID:cwJzo4Jp0 引数セットするのは、呼び出し側
コンパイラが呼び出し側で引数がないと判定した結果、
気を利かせて呼び出さないコードを吐くって一体どういうことだろう
呼ばれた側は機械的にあるはずの引数にアクセスする
呼ばれる側はセットしてないなんて分からないからアクセスしてしまうぞ
コンパイラが呼び出し側で引数がないと判定した結果、
気を利かせて呼び出さないコードを吐くって一体どういうことだろう
呼ばれた側は機械的にあるはずの引数にアクセスする
呼ばれる側はセットしてないなんて分からないからアクセスしてしまうぞ
693デフォルトの名無しさん (オッペケ Sr87-bFL4)
2022/06/13(月) 20:10:29.53ID:8KDu5nutr >「罠」がある(キリッ
とかお寒いこと書いちゃうくらいだしよほど視野が狭くなってたんだろうなぁ
とかお寒いこと書いちゃうくらいだしよほど視野が狭くなってたんだろうなぁ
694デフォルトの名無しさん (アウアウウー Sa67-hiZJ)
2022/06/13(月) 20:15:33.10ID:iGSNe98na stdcall と cdecl の話か?
どっちにしても引数省略されたのかされてないのか呼ばれた方では判らん
C++なら省略の代わりにデフォルト引数入れたりマングリングしたり出来るが
Cではどうしようもない
どっちにしても引数省略されたのかされてないのか呼ばれた方では判らん
C++なら省略の代わりにデフォルト引数入れたりマングリングしたり出来るが
Cではどうしようもない
695デフォルトの名無しさん (ブーイモ MM27-Uj9G)
2022/06/13(月) 20:17:50.97ID:6K7aQgyCM >>693
コピペで使えそうだなw
コピペで使えそうだなw
696デフォルトの名無しさん (ワッチョイ ff01-MmlY)
2022/06/13(月) 21:42:41.32ID:PLcvpN2h0 >>688-689,691-692
コンパイルエラーとして全くコードを吐かないという事すら可能なのに何を言ってるんだよ...
今時未定義動作すら考慮して最適化したりしてる時代なんだぞw
https://qiita.com/kaityo256/items/d2677e178be0180482e8
コンパイルエラーとして全くコードを吐かないという事すら可能なのに何を言ってるんだよ...
今時未定義動作すら考慮して最適化したりしてる時代なんだぞw
https://qiita.com/kaityo256/items/d2677e178be0180482e8
697デフォルトの名無しさん (スップ Sd1f-7fB6)
2022/06/13(月) 21:44:17.84ID:ir4nxYTVd698デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 22:00:44.23ID:cwJzo4Jp0 ワーニング笑
699デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 22:05:19.85ID:cwJzo4Jp0 一体どこのコンパイラがコード吐かずに停止するんだよ
700デフォルトの名無しさん (ワッチョイ ff01-MmlY)
2022/06/13(月) 22:14:04.47ID:PLcvpN2h0701デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 22:42:16.41ID:cwJzo4Jp0 つまり実在しないコンパイラってことだな
702デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 22:44:07.87ID:cwJzo4Jp0 オレ以外、全員狂ってるって言ってるのと同じ
703デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/13(月) 22:44:55.56ID:cwJzo4Jp0 こいつと同じ職場でなくて良かった
704デフォルトの名無しさん (ワッチョイ 7f69-GGE9)
2022/06/13(月) 23:54:32.34ID:uF/nHRZy0 法解釈論「人殺しは違法であり罰される」
実運用論「証拠を完璧に隠滅できれば罰されない」
意固地になっちゃってるから何言っても無駄
実運用論「証拠を完璧に隠滅できれば罰されない」
意固地になっちゃってるから何言っても無駄
705デフォルトの名無しさん (オイコラミネオ MM47-Uj9G)
2022/06/14(火) 03:02:34.64ID:bOBoFDUrM 意固地になるとアスペチックになるのか
アスペチックだから意固地になりやすいのか
アスペチックだから意固地になりやすいのか
706デフォルトの名無しさん (ワッチョイ ff01-MmlY)
2022/06/14(火) 06:01:33.60ID:WigeF4Tr0 意固地もなにも未定義動作なんて規格の話なんだから実運用論とか言われてもねw
707デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/14(火) 06:16:24.48ID:XpDhKBGs0708デフォルトの名無しさん (ワッチョイ 03cf-zEfY)
2022/06/14(火) 07:36:21.84ID:/Eif446V0 自分で言った言葉に?みつく芸なんだろうか
709デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/14(火) 10:22:14.90ID:2fucKJss0 >>707
>654が言ってるのはどうせこんなのだろうと思ってた。
https://wandbox.org/permlink/aiZH8Ytc91RyQ7HL
#include <stdio.h>
void func();
int main() { func(); }
void func(int x) { printf("%d\n", x); }
>654が言ってるのはどうせこんなのだろうと思ってた。
https://wandbox.org/permlink/aiZH8Ytc91RyQ7HL
#include <stdio.h>
void func();
int main() { func(); }
void func(int x) { printf("%d\n", x); }
710デフォルトの名無しさん (ワッチョイ f369-Aiv4)
2022/06/14(火) 10:32:47.66ID:rBU/2bdp0 実体記述時と、宣言&呼び出し時とで、引数の型や個数の不一致
コンパイルが通るかもしれんけど、どう動くかわからないし
俺の環境ではこう動くからと、それを信じて採用するには怖すぎる
コンパイルが通るかもしれんけど、どう動くかわからないし
俺の環境ではこう動くからと、それを信じて採用するには怖すぎる
711デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/14(火) 10:33:48.55ID:XpDhKBGs0712デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/14(火) 10:44:32.74ID:2fucKJss0 >>711 え? 679 (ワッチョイ 835f-GGE9) だから答えたのに何でよくわからんイチャモンつけられてんの?
いやまぁ、予想通りで結論に異論無いならいいんだけどさ。
いやまぁ、予想通りで結論に異論無いならいいんだけどさ。
713デフォルトの名無しさん (ワッチョイ f369-Aiv4)
2022/06/14(火) 10:50:39.67ID:rBU/2bdp0 省略時のデフォルト引数と(マングリング等による)別実装
C以前の言語でもありそうだし前者は検討してそうなもんだけど見送ったなりの理由があるんだろうか
C以前の言語でもありそうだし前者は検討してそうなもんだけど見送ったなりの理由があるんだろうか
714デフォルトの名無しさん (ワッチョイ 835f-GGE9)
2022/06/14(火) 10:52:59.20ID:2fucKJss0 想定が合ってたということで改めて結論も明記しとくと、
>709 のプログラムが未定義動作を起こすのは不定な x の値を使用するからではなく、
func(int x) に対して引数の数が不正な関数呼び出し func() を行うからであって、
x の値を使用しない場合(例えば関数内を空にした場合など)ても未定義動作になる、という話ね。
>709 のプログラムが未定義動作を起こすのは不定な x の値を使用するからではなく、
func(int x) に対して引数の数が不正な関数呼び出し func() を行うからであって、
x の値を使用しない場合(例えば関数内を空にした場合など)ても未定義動作になる、という話ね。
715デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/14(火) 10:53:17.30ID:XpDhKBGs0 >>712
ほらな、やっぱり自分の手の内は晒さない
ほらな、やっぱり自分の手の内は晒さない
716デフォルトの名無しさん (ワッチョイ f369-Aiv4)
2022/06/14(火) 11:13:15.99ID:rBU/2bdp0 661の立場だと
void func(int x) { }
・・・・・
func();
は、記述のほうで x をリファレンスしてないからセーフで未定義には該当しないと読めるが
そいう主張なのかな
void func(int x) { }
・・・・・
func();
は、記述のほうで x をリファレンスしてないからセーフで未定義には該当しないと読めるが
そいう主張なのかな
717デフォルトの名無しさん (オッペケ Sr87-bFL4)
2022/06/14(火) 11:51:03.61ID:2oEiwFQbr 引っ込みつかなくなると大変だね
718デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/14(火) 12:19:58.97ID:zr4Ezotf0 単に使われない変数があるってだけだと思うが
719デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/14(火) 12:58:48.08ID:WigeF4Tr0720デフォルトの名無しさん (ワッチョイ f369-Aiv4)
2022/06/14(火) 13:36:14.16ID:rBU/2bdp0 実装の話
関数側でスタックに詰まれた引数をクリーンアップする呼び出し規約(pascalcall や stdcall) だと
明後日に飛んでいくのか
関数側でスタックに詰まれた引数をクリーンアップする呼び出し規約(pascalcall や stdcall) だと
明後日に飛んでいくのか
721デフォルトの名無しさん (ワッチョイ ffad-L0LW)
2022/06/14(火) 19:11:20.40ID:DieH08Hx0 引き数の値で関数内の処理を分けるか普通に関数分ければいいやん
722デフォルトの名無しさん (ワンミングク MM9f-+bKn)
2022/06/14(火) 21:11:51.49ID:VPcVb+UNM 普通の人ならそうするが、
普通で無い方法が無いかを
いろいろ議論している
暇つぶしとも言う
普通で無い方法が無いかを
いろいろ議論している
暇つぶしとも言う
723デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/14(火) 21:17:41.30ID:XpDhKBGs0 特定されない限りあらゆるケースを想定するからな
724デフォルトの名無しさん (ワッチョイ ffad-/fjj)
2022/06/14(火) 23:50:32.80ID:dnqAP5Hg0 >>718
DLLの呼び出しみたいに呼び出し先の実装をコンパイラが知らない場合
例えば引数をスタックに積む呼び出し規約だと
↓正常な動作
1)戻り先のアドレスをスタックに積む
2)引数をスタックに積む
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
これが↓異常な動作
1)戻り先のアドレスをスタックに積む
2)なんもない
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
5)わし、迷子
ってなるんちゃうん?
引数がレジスタ渡しなら、ただ変な数値受け取るだけで済むけど、今ここでの話じゃ限定してないようだし
DLLの呼び出しみたいに呼び出し先の実装をコンパイラが知らない場合
例えば引数をスタックに積む呼び出し規約だと
↓正常な動作
1)戻り先のアドレスをスタックに積む
2)引数をスタックに積む
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
これが↓異常な動作
1)戻り先のアドレスをスタックに積む
2)なんもない
3)DLL側のコード実行時にpopしてスタックから引数ゲット
4)いろいろ処理してpopして戻り先アドレスをゲットしてりたーん
5)わし、迷子
ってなるんちゃうん?
引数がレジスタ渡しなら、ただ変な数値受け取るだけで済むけど、今ここでの話じゃ限定してないようだし
725デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 00:28:34.16ID:kIvvyTdz0 呼び出しって引数をスタックに積んでから、呼び出すんじゃなかったかな
726デフォルトの名無しさん (ワッチョイ ffad-/fjj)
2022/06/15(水) 00:38:49.11ID:3+VQJWvy0727デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 00:43:20.78ID:kIvvyTdz0 引数をスタックに積んでから、戻りアドレスを積んでCallするなら、
func関数はスタック先頭位置にあるアドレスに戻るだけではないかな
積まれている引数はその下だからズレないと思う
func関数はスタック先頭位置にあるアドレスに戻るだけではないかな
積まれている引数はその下だからズレないと思う
728デフォルトの名無しさん (ワッチョイ ffad-/fjj)
2022/06/15(水) 00:57:26.32ID:3+VQJWvy0 >>727
>引数をスタックに積んでから、戻りアドレスを積んでCallするなら、
逆だぞ
戻りアドレスをスタックに積んでから引数をスタックに積む、その状態でfuncをコールする
そうしないと、次のpopでは戻りアドレスを受け取ることになり、引数を受け取れない
コールされたfuncはpopし引数を受け取って処理(この間にスタックへのpush/popがあったりして)、最後にpopして戻りアドレスを受け取って呼び出し元に帰る
>引数をスタックに積んでから、戻りアドレスを積んでCallするなら、
逆だぞ
戻りアドレスをスタックに積んでから引数をスタックに積む、その状態でfuncをコールする
そうしないと、次のpopでは戻りアドレスを受け取ることになり、引数を受け取れない
コールされたfuncはpopし引数を受け取って処理(この間にスタックへのpush/popがあったりして)、最後にpopして戻りアドレスを受け取って呼び出し元に帰る
729デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 01:08:25.20ID:kIvvyTdz0 戻りアドレスをスタックに積むのは、機械語のCALL命令が行うんでしょう?
730デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 01:16:07.05ID:kIvvyTdz0 VCでアセンブラソース出力させてみました
int main()
{
call(1);
call();
return 0;
}
int call()
{
return 0;
}
int main()
{
call(1);
call();
return 0;
}
int call()
{
return 0;
}
731デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 01:17:50.09ID:kIvvyTdz0 _main PROC
; Line 2
push ebp
mov ebp, esp
; Line 3
push 1
call _call
add esp, 4
; Line 4
call _call
; Line 5
xor eax, eax
; Line 6
pop ebp
ret 0
_main ENDP
; Line 2
push ebp
mov ebp, esp
; Line 3
push 1
call _call
add esp, 4
; Line 4
call _call
; Line 5
xor eax, eax
; Line 6
pop ebp
ret 0
_main ENDP
732デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 01:18:18.33ID:kIvvyTdz0 _call PROC
; Line 8
push ebp
mov ebp, esp
; Line 9
xor eax, eax
; Line 10
pop ebp
ret 0
_call ENDP
; Line 8
push ebp
mov ebp, esp
; Line 9
xor eax, eax
; Line 10
pop ebp
ret 0
_call ENDP
733デフォルトの名無しさん (ワッチョイ ffad-/fjj)
2022/06/15(水) 01:22:13.35ID:3+VQJWvy0 そうでした
うんこは消えます
うんこは消えます
734デフォルトの名無しさん (アウアウウー Sa67-QAJi)
2022/06/15(水) 05:01:22.73ID:oeHjaPLHa フレームポインタってのもあって
まあなんでもいいんです
まあなんでもいいんです
735デフォルトの名無しさん (アウアウウー Sa67-iSSN)
2022/06/15(水) 15:38:51.27ID:IEWflW3Ga >>728
馬鹿発見
馬鹿発見
736デフォルトの名無しさん (ワッチョイ 7f36-GGE9)
2022/06/15(水) 18:22:38.94ID:mSaBC5As0 >729
全てのCPUにCALL相当の命令があるとは限らないってことを頭の片隅に。
全てのCPUにCALL相当の命令があるとは限らないってことを頭の片隅に。
737デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 19:14:29.02ID:kIvvyTdz0 CALL命令のないCPUにCってどういう風に実装するのかな
キッと神様のような人だろうと思う
キッと神様のような人だろうと思う
738デフォルトの名無しさん (アウアウウー Sa67-QAJi)
2022/06/15(水) 19:34:49.70ID:vqdnmmaIa 最近call見ないよね
命令はあるけど
命令はあるけど
739デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/15(水) 19:53:29.20ID:XKwaNEU70 >>736
C言語で書いたコードが実行できるようなCPUでCALL相当の命令がない奴なんてあるのか?
まさかと思うけどBSR(Branch SubRoutin)とかBAS(Branch and Save)はCALLと綴りが違うんだーっていう主張じゃないよね
C言語で書いたコードが実行できるようなCPUでCALL相当の命令がない奴なんてあるのか?
まさかと思うけどBSR(Branch SubRoutin)とかBAS(Branch and Save)はCALLと綴りが違うんだーっていう主張じゃないよね
740デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/15(水) 19:55:51.69ID:XKwaNEU70 >>737
汎用機みたいにスタックが無いマシンだとソフトでスタック作るとかする
汎用機みたいにスタックが無いマシンだとソフトでスタック作るとかする
741デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/15(水) 20:05:59.02ID:kIvvyTdz0 呼出も戻りも、ジャンプ命令で実装するんかい?
「食らえ、GOTO攻撃!」
「食らえ、GOTO攻撃!」
742デフォルトの名無しさん (ワッチョイ 2301-UmXv)
2022/06/15(水) 20:06:30.10ID:gppE9X5h0743デフォルトの名無しさん (ワッチョイ 2301-UmXv)
2022/06/15(水) 20:07:41.69ID:gppE9X5h0744デフォルトの名無しさん (ワッチョイ 7f36-GGE9)
2022/06/15(水) 20:29:16.05ID:mSaBC5As0 >739
2000年あたりのスパコンのデバッグやってたけどスタックポインタ自体無かったよ。
汎用レジスタの一つをスタックポインタの様に使ってた。
スパコンのPEはCPUじゃ無いっていうならそれまでだけど。
OSがCで書かれてたよ。
2000年あたりのスパコンのデバッグやってたけどスタックポインタ自体無かったよ。
汎用レジスタの一つをスタックポインタの様に使ってた。
スパコンのPEはCPUじゃ無いっていうならそれまでだけど。
OSがCで書かれてたよ。
745はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-GGE9)
2022/06/15(水) 20:38:36.75ID:VY0KZJ3n0 専用のレジスタを用意するかわりにアドレシングモードを充実させてるタイプの CPU もあるとは聞いたことは有る。
複数のスタックを用途別に使ったりする運用も出来るので便利っぽいよ。
複数のスタックを用途別に使ったりする運用も出来るので便利っぽいよ。
746デフォルトの名無しさん (ワッチョイ cf46-IaEQ)
2022/06/15(水) 20:42:40.26ID:Z7kfo4VR0 リンクレジスタを使うアーキテクチャは
呼び出しも戻りもジャンブだよ
呼び出しも戻りもジャンブだよ
747デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/15(水) 21:27:21.82ID:XKwaNEU70748デフォルトの名無しさん (ワッチョイ 7f36-GGE9)
2022/06/15(水) 21:32:09.09ID:mSaBC5As0 JMPで呼び出した関数に飛んで、
JMPで呼び出し元に戻って行ってたよ。
RET、それ相当の命令が無かった(使われてなかった?)。
JMPで呼び出し元に戻って行ってたよ。
RET、それ相当の命令が無かった(使われてなかった?)。
749デフォルトの名無しさん (アウアウウー Sa67-QAJi)
2022/06/15(水) 21:47:48.01ID:vqdnmmaIa ぴゅう太のCPUとか全然レジスタなかった
750デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/15(水) 21:51:15.67ID:XKwaNEU70 >>748
どこのスパコン?
どこのスパコン?
751デフォルトの名無しさん (ワッチョイ cfbb-D3sd)
2022/06/15(水) 21:56:54.74ID:Ltc382Vw0 Z8スーパーコンピュータ
752デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/15(水) 21:58:58.10ID:XKwaNEU70 >>749
あれはレジスタはメモリー上に置くって言う設計思想だから
あれはレジスタはメモリー上に置くって言う設計思想だから
753デフォルトの名無しさん (ワッチョイ 7f36-GGE9)
2022/06/15(水) 22:55:33.80ID:mSaBC5As0 >750
富士通。
実機は見たこと無い。
なんかアメリカに設置されてて、日本の端末(FMVにFreeBSDかなんか入れてた)からtelnetで入って作業してた。
入社1年目だったんでテスト作業員+フリーズした場所の特定と原因予想してた。
富士通。
実機は見たこと無い。
なんかアメリカに設置されてて、日本の端末(FMVにFreeBSDかなんか入れてた)からtelnetで入って作業してた。
入社1年目だったんでテスト作業員+フリーズした場所の特定と原因予想してた。
754デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/16(木) 07:08:44.59ID:ilsRfae90 STM 14,12,12(13)
LR 12,15
GETMAIN RU,LV=72
ST 13,4(,1)
ST 1,8(,13)
LR 13,1
LR 12,15
GETMAIN RU,LV=72
ST 13,4(,1)
ST 1,8(,13)
LR 13,1
755デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/16(木) 07:48:03.24ID:acnLqVz40756デフォルトの名無しさん (ワッチョイ 93bb-zkCy)
2022/06/16(木) 14:04:28.10ID:6d6damS40 ① struct _Hoge;
② typedef struct _Hoge Hoge;
③ struct _Hoge { int a; };
④ typedef struct _Hoge { int a; } Hoge;
↑の①~④はどれが「定義」でどれが「宣言」かよくわからんです
typedef の def は define(定義)の def ですが
変数作って値を定義していないので全部宣言ですかね?
② typedef struct _Hoge Hoge;
③ struct _Hoge { int a; };
④ typedef struct _Hoge { int a; } Hoge;
↑の①~④はどれが「定義」でどれが「宣言」かよくわからんです
typedef の def は define(定義)の def ですが
変数作って値を定義していないので全部宣言ですかね?
757デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/16(木) 14:15:11.58ID:ilsRfae90 原則、重複が許されるのが宣言、許されないのが定義
ただし仮定義のような例外も一部ある
ただし仮定義のような例外も一部ある
758デフォルトの名無しさん (ワッチョイ 93bb-zkCy)
2022/06/16(木) 14:18:30.74ID:6d6damS40 そうすると①は宣言ですね
759デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/16(木) 14:37:35.99ID:ilsRfae90 うむ
760デフォルトの名無しさん (アウアウウー Sa67-iSSN)
2022/06/16(木) 19:53:21.43ID:hEUIHdUOa コンパイラが単語を覚えるのが宣言
メモリに実態が産まれるのが定義
メモリに実態が産まれるのが定義
761デフォルトの名無しさん (ブーイモ MM7f-a+sK)
2022/06/16(木) 20:19:36.30ID:2MvWGhryM ③書いたところでメモリに実体生まれんだろ
762デフォルトの名無しさん (ワッチョイ 93bb-zkCy)
2022/06/16(木) 22:26:58.67ID:6d6damS40 ③を2回書くとエラーになりますね
この辺は沼でしょうか?
厳密に分けても何かに役立つというものでもないし・・・
この辺は沼でしょうか?
厳密に分けても何かに役立つというものでもないし・・・
763デフォルトの名無しさん (ワッチョイ cf63-GGE9)
2022/06/16(木) 23:14:06.95ID:y5qePP6X0 そういう風に決めたなら仕方がないが
意味的には、定義と宣言って逆な印象を受けます
数学でいうと、
点や直線の定義では実際の描画はまだですが
点や直線の宣言っていうと、その場に描画すると言うイメージ
意味的には、定義と宣言って逆な印象を受けます
数学でいうと、
点や直線の定義では実際の描画はまだですが
点や直線の宣言っていうと、その場に描画すると言うイメージ
764はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6f3e-GGE9)
2022/06/16(木) 23:16:16.53ID:yR1zGyRS0 宣言と定義の意味については C99 だと 6.7 に記述がある
> 宣言は、幾つかの識別子の解釈及び属性を指定する。
> 識別子の定義 (definition) とは、宣言のうち次のものをいう。
> ・ オブジェクトに対しては、そのオブジェクトの記憶域を確保する宣言
> ・ 関数に対しては、関数本体を含む宣言
> ・ 列挙定数又は型定義名に対しては、その識別子の (唯一の) 宣言
逆に言えば定義は常に宣言でもある。
> 宣言は、幾つかの識別子の解釈及び属性を指定する。
> 識別子の定義 (definition) とは、宣言のうち次のものをいう。
> ・ オブジェクトに対しては、そのオブジェクトの記憶域を確保する宣言
> ・ 関数に対しては、関数本体を含む宣言
> ・ 列挙定数又は型定義名に対しては、その識別子の (唯一の) 宣言
逆に言えば定義は常に宣言でもある。
765デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/17(金) 05:27:18.60ID:zopwF6/i0 実体が作られるといっても
プログラムイメージにスペースが確保されるとは限らない
静的記憶域期間を持つものはプログラムイメージに作られるが
自動記憶域期間を持つものは実行中に割付と解放が行われるし
構造体のメンバ宣言並びはコンパイラのメモリに作られる
これらのいずれも「定義」となる
プログラムイメージにスペースが確保されるとは限らない
静的記憶域期間を持つものはプログラムイメージに作られるが
自動記憶域期間を持つものは実行中に割付と解放が行われるし
構造体のメンバ宣言並びはコンパイラのメモリに作られる
これらのいずれも「定義」となる
766デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/17(金) 07:51:59.32ID:bL392TY50767デフォルトの名無しさん (ワッチョイ 0310-GGE9)
2022/06/17(金) 08:44:28.03ID:rAke7YJm0 なんとなくのイメージ
・宣言
「xxxxって名前の変数(関数)がどっかにあるらしいよ。詳しいことは知らん。」
・定義
「xxxxの詳細はココに書かれたxxxxxである!これは決定事項である!!」
・宣言
「xxxxって名前の変数(関数)がどっかにあるらしいよ。詳しいことは知らん。」
・定義
「xxxxの詳細はココに書かれたxxxxxである!これは決定事項である!!」
768デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/17(金) 13:54:11.29ID:zopwF6/i0 >>766
struct _Hoge;
struct _Hoge; // OK
これは _Hoge という識別子がタグ名という定型データとして作られ、
その後、定型データの中の属性フラグが検査されて一致が確認される
struct _Hoge;
union _Hoge; // NG
これは定型データの中の属性フラグが検査され不一致が検出される
struct _Hoge;
struct _Hoge { int a; }; // OK
これは定型データの中のポインタがまずNULLで作られ、
次に、そのポインタでメンバ宣言列という不定型データを指す
struct _Hoge { int a; };
struct _Hoge { int a; }; // NG
これは既にNULLでなくなったポインタの貼りかえで拒否される
宣言の重複は矛盾の検出のみを行い
定義の重複は不定型データの再作成で拒否される
{ } は無結合
struct _Hoge;
struct _Hoge; // OK
これは _Hoge という識別子がタグ名という定型データとして作られ、
その後、定型データの中の属性フラグが検査されて一致が確認される
struct _Hoge;
union _Hoge; // NG
これは定型データの中の属性フラグが検査され不一致が検出される
struct _Hoge;
struct _Hoge { int a; }; // OK
これは定型データの中のポインタがまずNULLで作られ、
次に、そのポインタでメンバ宣言列という不定型データを指す
struct _Hoge { int a; };
struct _Hoge { int a; }; // NG
これは既にNULLでなくなったポインタの貼りかえで拒否される
宣言の重複は矛盾の検出のみを行い
定義の重複は不定型データの再作成で拒否される
{ } は無結合
769デフォルトの名無しさん (アウアウウー Sa67-iSSN)
2022/06/17(金) 16:09:04.52ID:G79h5Zera >>763
誤訳
誤訳
770デフォルトの名無しさん (アウアウウー Sa67-iSSN)
2022/06/17(金) 16:13:44.68ID:G79h5Zera struct _Hoge { int a; };
struct _Hoge { int a; }; // NG
この場合でもコンパイル単位が別ファイルだと(ほぼ)問題無い訳で
一致していなければ一致していないなりの結果が産まれる
struct _Hoge { int a; }; // NG
この場合でもコンパイル単位が別ファイルだと(ほぼ)問題無い訳で
一致していなければ一致していないなりの結果が産まれる
771デフォルトの名無しさん (ワッチョイ cfae-/e9c)
2022/06/17(金) 16:33:58.20ID:zopwF6/i0772デフォルトの名無しさん (ワッチョイ ff01-NwEC)
2022/06/17(金) 19:28:59.11ID:bL392TY50 >>768
なにを言いたいのかさっぱりわからんw
なにを言いたいのかさっぱりわからんw
773デフォルトの名無しさん (アウアウウー Sa47-vQ73)
2022/06/18(土) 20:10:05.11ID:cOcEcivya ヘッダ include したことないとか
ヘッダに実装描くとか
分割コンパイルしたことないとか
そういうアホのにおいがプンプン丸
ヘッダに実装描くとか
分割コンパイルしたことないとか
そういうアホのにおいがプンプン丸
774デフォルトの名無しさん (ワッチョイ ffad-P2F3)
2022/06/18(土) 23:11:41.82ID:eg6b2Ems0 どこにそんな話出てた…?
775デフォルトの名無しさん (ワッチョイ 1769-gg/4)
2022/06/20(月) 15:11:40.00ID:BalXxnr90 定義と宣言の区別に関して
同一翻訳単位の中で 重複が許されるのが宣言 の実例の話やろ
同一翻訳単位の中で 重複が許されるのが宣言 の実例の話やろ
776デフォルトの名無しさん (ワッチョイ 9a01-ylO7)
2022/06/20(月) 20:05:57.84ID:3bt1t/j50 聞きたいのは内容じゃなくてなぜそんな話をいきなり始めたのか?なんだけどw
777デフォルトの名無しさん (オッペケ Sr3b-P2F3)
2022/06/20(月) 20:11:30.62ID:8GsqMDfwr ヘッダに実装書いたっていうレスもヘッダをincludeしたことないっていうレスも見当たらないけど…
778デフォルトの名無しさん (スップ Sdba-JtvC)
2022/06/20(月) 20:27:07.42ID:aPzFu0cfd 別ソースから同じヘッダをincludeしていてもコンパイル時には必ず別ファイルとなるわけで(ほぼ)じゃ困る
779デフォルトの名無しさん (ワッチョイ ffad-DcGD)
2022/06/25(土) 17:14:53.88ID:g21tYZQo0 if ( a == 0 )
{ port &= 0b11011111 ;
}
else
{ port |= 0b00100000 ;
}
これ条件文使わずに書けるよね?
{ port &= 0b11011111 ;
}
else
{ port |= 0b00100000 ;
}
これ条件文使わずに書けるよね?
780デフォルトの名無しさん (ワッチョイ 0f01-xMmJ)
2022/06/25(土) 17:41:40.76ID:ZgY7VkDz0 >>779
三項演算子は条件文に含みますか?
三項演算子は条件文に含みますか?
781デフォルトの名無しさん (ワントンキン MM0f-1jZc)
2022/06/25(土) 17:45:19.17ID:zMWMLrlCM 書けるかどうかより、分かりやすいかの方が大事
782デフォルトの名無しさん (ワッチョイ 7fbb-y9a9)
2022/06/25(土) 17:45:51.43ID:9jpr7vFN0 port = port & ~((a == 0) * ~0b11011111) | (a != 0) * 0b00100000
頭悪いんでこれ以上無理。確実にレビューで落ちる
頭悪いんでこれ以上無理。確実にレビューで落ちる
783デフォルトの名無しさん (ワッチョイ 7fbb-y9a9)
2022/06/25(土) 17:56:58.31ID:9jpr7vFN0 何だこれでいいのか
port = port & 0b11011111 | (a != 0) << 5
port = port & 0b11011111 | (a != 0) << 5
784デフォルトの名無しさん (ワッチョイ ffad-DcGD)
2022/06/25(土) 18:15:30.63ID:g21tYZQo0 おまいらは何で素直にかけないんだ?(´・ω・`)?
785デフォルトの名無しさん (オッペケ Sra3-Htnq)
2022/06/25(土) 18:26:40.73ID:XIyeaAEpr >>779
条件分を使わない理由はないよね?
条件分を使わない理由はないよね?
786デフォルトの名無しさん (ワッチョイ 7fbb-y9a9)
2022/06/25(土) 18:26:54.17ID:9jpr7vFN0 まさか質問者に駄目だしされるとは思わなんだ
787デフォルトの名無しさん (ワッチョイ 3f32-iCO3)
2022/06/25(土) 18:28:36.26ID:gQjoPRQF0 条件によって8ビット目以上も変える訳ではないのならば…かな
&= 0b11011111 | !!a << 5や&= ~0b00100000 | !!a << 5とかも論理否定は楽な方で
後者は若干レジスタ雑に出来るが…しかし最適化するとif文も分岐排除されてほぼ変わらん
&= 0b11011111 | !!a << 5や&= ~0b00100000 | !!a << 5とかも論理否定は楽な方で
後者は若干レジスタ雑に出来るが…しかし最適化するとif文も分岐排除されてほぼ変わらん
788デフォルトの名無しさん (JP 0Hdf-NYZb)
2022/06/25(土) 19:15:33.07ID:ca1tbhpBH 条件文使わずに書いても何もメリットない
789デフォルトの名無しさん (ワッチョイ 3f36-tCSL)
2022/06/25(土) 19:35:30.93ID:IvS/BJ7o0 やるならアセンブラレベルで・・・
790デフォルトの名無しさん (ワッチョイ 7f63-tCSL)
2022/06/25(土) 22:45:43.97ID:UWoTCBGr0 Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
0b 使えないw
0b 使えないw
791デフォルトの名無しさん (ワッチョイ 3f01-DrrO)
2022/06/25(土) 23:52:02.49ID:PITDVbGU0 そりゃそうだろ
C言語としてはGCCの拡張だし
C++14でコンパイルしたらいけるんじゃね?
C言語としてはGCCの拡張だし
C++14でコンパイルしたらいけるんじゃね?
792デフォルトの名無しさん (ワッチョイ 8f10-tCSL)
2022/06/26(日) 09:58:04.14ID:EKr6eQfX0 >0b 使えない
0xに変換か、どうせ定数なんだからそれっぽいマクロで代用しとけばヨロシ。
0xに変換か、どうせ定数なんだからそれっぽいマクロで代用しとけばヨロシ。
793デフォルトの名無しさん (アウアウウー Sad3-b+l8)
2022/06/26(日) 10:58:18.13ID:hEbl3kj1a orをandで記述する方法は
794デフォルトの名無しさん (ワッチョイ 7fae-gXkX)
2022/06/26(日) 11:05:33.04ID:j/Qk9Cw40 負論理
795デフォルトの名無しさん (スップ Sd5f-3JUw)
2022/06/26(日) 11:39:10.83ID:ImrLxjwid A|B == ~( ~A & ~B )
だけどまったく意味はないな
だけどまったく意味はないな
796デフォルトの名無しさん (ワッチョイ 7f63-tCSL)
2022/06/26(日) 11:50:57.28ID:9tvF1jx30 ソースを難解にするのに多少貢献
797デフォルトの名無しさん (ワッチョイ 7fbb-y9a9)
2022/06/26(日) 14:00:18.84ID:r2JBCRM90 怒(プイプイ)モルカーだな
798デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
2022/07/09(土) 06:20:44.23ID:LJ5BAcPW0 今日の学び
voidは1バイト
voidは1バイト
799デフォルトの名無しさん (ワッチョイ 355f-UQ1h)
2022/07/09(土) 11:11:08.31ID:8isXQv7m0 >>798 たぶんgcc拡張のポインタ演算の話でしょ。他ではそんなこと言えないから気を付けて。
800デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
2022/07/09(土) 12:16:19.03ID:LJ5BAcPW0801デフォルトの名無しさん (スッップ Sd43-jz6z)
2022/07/09(土) 12:23:26.90ID:U9EmutCWd802デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
2022/07/09(土) 12:27:53.55ID:LJ5BAcPW0 >>801
へ~知らなかった
へ~知らなかった
803デフォルトの名無しさん (ワッチョイ cb63-TkQT)
2022/07/09(土) 12:31:03.64ID:Pcby8BG30 ではvoid型変数 sを宣言してみて下さい
サイズを測ってご覧にいれます
サイズを測ってご覧にいれます
804デフォルトの名無しさん (ブーイモ MMcb-bSlT)
2022/07/09(土) 12:37:25.10ID:rCvRfQZvM 糞坊主が
805デフォルトの名無しさん (ワッチョイ 8302-Fj9x)
2022/07/09(土) 12:39:57.10ID:OQU8CgWM0 屏風に描いたvoidなんつって
806デフォルトの名無しさん (ワッチョイ 23ad-jVDF)
2022/07/09(土) 20:15:12.04ID:A5P06KhI0 ヘ_ヘ
ミ・・ ミ
( )~
ミ・・ ミ
( )~
807デフォルトの名無しさん (ワッチョイ 85e6-TUM9)
2022/07/09(土) 20:56:46.61ID:2FL2bpN80 他人のふんどしで勝負する男の人って‥‥
808デフォルトの名無しさん (ワッチョイ cb46-/THt)
2022/07/09(土) 21:10:00.31ID:eJjSZ+Lo0 はなししとは?
ヘ_ヘ
ミ・・ ミ
( )~
ヘ_ヘ
ミ・・ ミ
( )~
809デフォルトの名無しさん (ワッチョイ 23ad-jVDF)
2022/07/10(日) 01:02:53.42ID:NKXzP1tS0 このスレに50代の者が居ると見た
810デフォルトの名無しさん (アウアウウー Sa09-S3zt)
2022/07/10(日) 01:43:41.30ID:4ppCSg1ba 70までおるじゃろ
811デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
2022/07/10(日) 05:01:57.35ID:teKb0H7o0 ム板の寄合所かよ
812デフォルトの名無しさん (US 0H03-TUM9)
2022/07/10(日) 15:27:56.20ID:EpSIEDJ/H >>808
他人のふんどしで勝負する男の人って‥‥
他人のふんどしで勝負する男の人って‥‥
813デフォルトの名無しさん (ワッチョイ 4bae-jVDF)
2022/07/10(日) 15:35:59.80ID:IXzc/cv30 みっともねえよな
そんなことまでパクリしかできねえやつ
# 奴が来なくなって20年近く経ってんのに進歩してやがらねえ
そんなことまでパクリしかできねえやつ
# 奴が来なくなって20年近く経ってんのに進歩してやがらねえ
814デフォルトの名無しさん (US 0H61-TUM9)
2022/07/10(日) 15:38:00.79ID:pOdXKR0zH >>813
ですよね
ですよね
815デフォルトの名無しさん (ワッチョイ 8302-Fj9x)
2022/07/11(月) 08:40:13.85ID:2XjvtJRn0 voidの長さはよくわからんが、取り敢えずvoid*のインクリ幅を実装の最小単位に取っておけば何でも指せるし、そのアドレス演算に意味を持たせる事も可能になる
どうしてもvoidのサイズを決めたいというのなら、まあ合理的な実装だと思う
どうしてもvoidのサイズを決めたいというのなら、まあ合理的な実装だと思う
816デフォルトの名無しさん (ワッチョイ a397-lnzN)
2022/07/11(月) 13:22:34.96ID:cGEUsgsp0 void*のインクリ幅に何か意味があるの?
817デフォルトの名無しさん (ワッチョイ e369-TkQT)
2022/07/11(月) 17:20:33.49ID:lWPgqJ6O0 char*でいいじゃん
なんだかわからないものは「バイト列」だろ
なんだかわからないものは「バイト列」だろ
818デフォルトの名無しさん (ワッチョイ 7510-TkQT)
2022/07/11(月) 17:41:30.26ID:TkfF8Lfy0 警告されるから
819デフォルトの名無しさん (ワッチョイ cb63-TkQT)
2022/07/11(月) 17:44:52.74ID:rBy2qCXb0 普通は明示的キャストを介して使うよな
820はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT)
2022/07/11(月) 17:46:10.96ID:POJvWuxZ0 そう。
オブジェクトを指すポインタは void* との間で「暗黙に」変換することが出来る。
最終的に char* にキャストするのだとしてもインターフェイス (仮引数) が void* だとキャストをせずに済む。
memmove とかがそれ。
オブジェクトを指すポインタは void* との間で「暗黙に」変換することが出来る。
最終的に char* にキャストするのだとしてもインターフェイス (仮引数) が void* だとキャストをせずに済む。
memmove とかがそれ。
821デフォルトの名無しさん (スッップ Sd43-sZie)
2022/07/11(月) 22:57:06.26ID:7aXqGp3Qd なんでも指せるのとインクリメント幅を1にするのは関係ない
むしろインクリメントしようとしたらミスである可能性が高いのでワーニングかエラーにすべき
むしろインクリメントしようとしたらミスである可能性が高いのでワーニングかエラーにすべき
822デフォルトの名無しさん (スップ Sd03-QY3K)
2022/07/12(火) 07:13:33.37ID:MjEzd7ZRd ハード的な最小単位へのポインタは欲しいね
charって書くの本当は気持ち悪い
charって書くの本当は気持ち悪い
823はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT)
2022/07/12(火) 10:12:07.41ID:AnYAkaOT0 C の仕様上はアドレスを定義できる単位をバイトと呼び、 char は 1 バイトであると定義されてる。
つまり char はハードウェア的な最小単位と言えるが……、まあ名前が良くないのは確か。
つまり char はハードウェア的な最小単位と言えるが……、まあ名前が良くないのは確か。
824デフォルトの名無しさん (スップ Sd03-QY3K)
2022/07/12(火) 12:14:37.21ID:MjEzd7ZRd つーか符号がどうたら言われたくない
825デフォルトの名無しさん (ワッチョイ ad69-jszV)
2022/07/12(火) 17:26:10.54ID:DhrJi4Do0 (char が 7bit の系って生き残ってるのかしら?)
826デフォルトの名無しさん (ワッチョイ 23ad-dHWA)
2022/07/12(火) 17:42:00.57ID:4CshQ+Jw0 というかなんでcharってsignedにしてあるんだろ?
char と unsigned charじゃなくてchar と signed char にしてくれていればよかったのにと思わなくもない
intもsignedだし(逆にintがunsignedだったら使いづらいけど)符号付の計算が基本とかあるのかね?
char と unsigned charじゃなくてchar と signed char にしてくれていればよかったのにと思わなくもない
intもsignedだし(逆にintがunsignedだったら使いづらいけど)符号付の計算が基本とかあるのかね?
827デフォルトの名無しさん (ワッチョイ a5d2-WFmy)
2022/07/12(火) 17:58:33.14ID:YvrX4qJi0 C++ではcharが符号付きか符号なしかは環境依存だよ
unsigned charともsigned charとも別の型扱いされる不思議な子
たぶんC言語でも同じ扱いだろう
unsigned charともsigned charとも別の型扱いされる不思議な子
たぶんC言語でも同じ扱いだろう
828デフォルトの名無しさん (ラクッペペ MMcb-KYPL)
2022/07/12(火) 18:06:57.31ID:ydFOrexCM charの符号は処理系依存と違ったっけ?
829はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b3e-TkQT)
2022/07/12(火) 18:30:46.85ID:AnYAkaOT0 そう。 >>827 の説明が正しい。
char の符号は処理系定義かつ signed char とも unsigned char とも異なる独立した型。
signed char か unsigned char のどちらかと別名という可能性もないので、
C++ のオーバーロードや C の _Generic で三種類に分岐することは出来るよ。
char は整数だから他の整数型との一貫性で考えれば符号付きになるのが自然なようにも思えるが……、
実行基本文字集合は char で (char が符号有りだとしても) 正の値になることを
要求している (C99 だと 6.2.5 に書いてある) ので各環境が採用している文字コードによっては
符号無しにせざるを得なかったのだと思う。
EBCDIC とかだとどうしてもそうなる。
まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
仕様が成立した時点でそうでない想定をしているコードが結構あったりしたんじゃないかな。
char の符号は処理系定義かつ signed char とも unsigned char とも異なる独立した型。
signed char か unsigned char のどちらかと別名という可能性もないので、
C++ のオーバーロードや C の _Generic で三種類に分岐することは出来るよ。
char は整数だから他の整数型との一貫性で考えれば符号付きになるのが自然なようにも思えるが……、
実行基本文字集合は char で (char が符号有りだとしても) 正の値になることを
要求している (C99 だと 6.2.5 に書いてある) ので各環境が採用している文字コードによっては
符号無しにせざるを得なかったのだと思う。
EBCDIC とかだとどうしてもそうなる。
まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
仕様が成立した時点でそうでない想定をしているコードが結構あったりしたんじゃないかな。
830デフォルトの名無しさん (アウアウウー Sa09-DHlW)
2022/07/12(火) 18:31:52.31ID:xJzxH9jqa831デフォルトの名無しさん (ワッチョイ ad69-jszV)
2022/07/13(水) 11:20:33.14ID:Zw91A11j0 >>829
>まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
比較の際に暗黙で走る int への格上げの時にややこしくなりそうやね
char ch;
...
if (ch >= 0x80) // 上位ビット立ってる?
>まあ負の文字コードが有っても辻褄合わせは出来たとは思うんだが、
比較の際に暗黙で走る int への格上げの時にややこしくなりそうやね
char ch;
...
if (ch >= 0x80) // 上位ビット立ってる?
832デフォルトの名無しさん (ブーイモ MM99-TwqT)
2022/07/13(水) 11:53:33.59ID:CCByLcFJM &buf[0] ってbufと同じだよな?
なんか意味あんのこの書き方?
なんか意味あんのこの書き方?
833デフォルトの名無しさん (ラクッペペ MMcb-KYPL)
2022/07/13(水) 12:43:05.67ID:hH7ZnQ+pM &buf[0] 配列の先頭要素のアドレス
buf 配列の先頭のアドレス
同じ
sizeof(&buf[0]) 配列の先頭要素のサイズ
sizeof(buf) 配列のサイズ
異なる
配列の要素数を求める場合
sizeof(buf)/sizeof(&buf[0])
で頻出する
buf 配列の先頭のアドレス
同じ
sizeof(&buf[0]) 配列の先頭要素のサイズ
sizeof(buf) 配列のサイズ
異なる
配列の要素数を求める場合
sizeof(buf)/sizeof(&buf[0])
で頻出する
834デフォルトの名無しさん (ブーイモ MM99-TwqT)
2022/07/13(水) 12:44:54.67ID:WjRfIVOeM センキュー
835蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-UzXB)
2022/07/13(水) 12:52:57.77ID:H8j4+v2od836はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT)
2022/07/13(水) 14:23:32.52ID:Kb1eM8RI0 >>832
配列の先頭としての意味よりその要素に意味があるということを強調した雰囲気を表すためにそういう書き方をすることはあるよ。
仕様としての解釈 (動作) に差が無い場面であっても人が読む上では雰囲気の差はある。
配列の先頭としての意味よりその要素に意味があるということを強調した雰囲気を表すためにそういう書き方をすることはあるよ。
仕様としての解釈 (動作) に差が無い場面であっても人が読む上では雰囲気の差はある。
837デフォルトの名無しさん (ワッチョイ ad69-jszV)
2022/07/13(水) 16:51:43.98ID:Zw91A11j0 添え字が非0 のとき &buf[1] か buf+1
添え字が0 のとき &buf[1] か buf+0 か buf か
同じコードになるけど記述に意味を見出すかどうか
添え字が0 のとき &buf[1] か buf+0 か buf か
同じコードになるけど記述に意味を見出すかどうか
838デフォルトの名無しさん (アウアウウー Sa09-2HoA)
2022/07/13(水) 17:38:26.38ID:H0DndFW/a _countof使わないのか
839はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT)
2022/07/14(木) 13:40:03.36ID:m4fVu3Vb0 配列の大きさを知る演算子くらい標準入りしてもよさそうなもんだとは思う。
840デフォルトの名無しさん (スッップ Sd43-QY3K)
2022/07/14(木) 13:46:25.72ID:YnALXIBFd ポインタに使うアフォが出てくるに1ペリカ
841はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a33e-TkQT)
2022/07/14(木) 14:14:28.24ID:m4fVu3Vb0 むしろ、イディオムやマクロによる素朴な実装だとポインタを渡してもエラーなく通過してしまうからこそ
言語の機能として提供して然るべきだと思うよ。
言語の機能として提供して然るべきだと思うよ。
842デフォルトの名無しさん (アウアウウー Sa09-S3zt)
2022/07/14(木) 14:49:53.54ID:abQKMdR+a 結局、配列が無いのが問題、みたいな
843デフォルトの名無しさん (ワッチョイ cb63-TkQT)
2022/07/14(木) 15:26:18.20ID:fgF/JGu/0 配列とは別に文字列型作れば良かったのかな
844デフォルトの名無しさん (スッップ Sd43-QY3K)
2022/07/15(金) 19:30:20.65ID:r8EwCLZ2d それを言ったら破門だよ
845デフォルトの名無しさん (ワッチョイ fdbb-/dRU)
2022/07/15(金) 22:46:23.97ID:vZ8IDyva0 string_t *s = str_alloc();
846デフォルトの名無しさん (ワッチョイ 7db3-pN0Z)
2022/07/17(日) 00:26:30.17ID:1DBmbCgq0 char a[32];
char b[32];
fp = fopen("abc.csv", "r");
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
printf("%s %s\n", a, b);
}
fclose(fp);
char b[32];
fp = fopen("abc.csv", "r");
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
printf("%s %s\n", a, b);
}
fclose(fp);
847デフォルトの名無しさん (ワッチョイ 7db3-pN0Z)
2022/07/17(日) 00:28:02.51ID:1DBmbCgq0 test.c:23:31: warning: format ‘%s’ expects a matching ‘char *’ argument [-Wformat=]
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
^^
問題なく動くんですが、上のような警告が出ます。
気にしなくても良いですか?
for(; fscanf(fp,"%[^,],%s%s", a, b) != EOF; ){
^^
問題なく動くんですが、上のような警告が出ます。
気にしなくても良いですか?
848デフォルトの名無しさん (アウアウウー Sa39-7BTn)
2022/07/17(日) 01:16:21.70ID:RIt+yucva &a[0]にでもしたらいいかもな
警告出さなきゃ出ないんじゃなかったかな
警告出さなきゃ出ないんじゃなかったかな
849デフォルトの名無しさん (ワッチョイ 69bb-eHP4)
2022/07/17(日) 04:38:20.42ID:tV/KWY8I0 指定子の数と引数の数が合ってないのでは?
850デフォルトの名無しさん (ワッチョイ 5a02-y2uU)
2022/07/17(日) 09:31:19.06ID:5kV34GW+0 %s は1つで良いんじゃね?
851デフォルトの名無しさん (スッププ Sdfa-br8/)
2022/07/17(日) 09:48:19.50ID:gh7Bz7cid %sが多いね
あと32バイト以上あったらクラッシュするけどいいの
あと32バイト以上あったらクラッシュするけどいいの
852デフォルトの名無しさん (ワッチョイ 69bb-eHP4)
2022/07/17(日) 11:10:26.64ID:tV/KWY8I0853デフォルトの名無しさん (スッププ Sdfa-br8/)
2022/07/17(日) 12:37:05.79ID:Fwel5trjd 最初の%[^,]でa[]にコンマの前までが取られて
次の%sが行末までをb[]に取るから
その次の%sをコピーするポインタが指定されてないので本来はここでクラッシュするけど
前の%sで行末に行ってるのでこの%sは必ず無視されるという綱渡り状態
直しておいたほうがいいよ
次の%sが行末までをb[]に取るから
その次の%sをコピーするポインタが指定されてないので本来はここでクラッシュするけど
前の%sで行末に行ってるのでこの%sは必ず無視されるという綱渡り状態
直しておいたほうがいいよ
854847 (ワッチョイ 7db3-pN0Z)
2022/07/18(月) 00:57:42.77ID:i3ini+Eo0 サンクス(´・ω・`)
855デフォルトの名無しさん (アウアウウー Sa39-3+h2)
2022/07/21(木) 23:01:29.27ID:qNAIu8qZa 生徒数と科目数と点数をキーボードから入力し、それぞれの科目数の個人、全体の合計点数、(科目数の個人、全体の)平均点をそれぞれ出すプログラミングをやっているのですが、全く分からないので教えてください。
856デフォルトの名無しさん (オッペケ Sr75-qwd4)
2022/07/21(木) 23:24:42.74ID:25qjJOkGr キーボードから入力する方法がわからないのか、平均点をだす方法がわからないのか?
857デフォルトの名無しさん (ワッチョイ da63-GsVe)
2022/07/21(木) 23:58:01.60ID:tQt8NkV/0 多分学校の宿題かなにかなんだろうが、
言葉足らずで相当補わないと問題が分からない
出題されたまんまの内容を書いてみてくれないか
言葉足らずで相当補わないと問題が分からない
出題されたまんまの内容を書いてみてくれないか
858デフォルトの名無しさん (ワッチョイ fa3e-GsVe)
2022/07/22(金) 01:39:33.12ID:fX2QhDiX0 「全く分からない」に対してわかるように教えるには入門書の頭から説明しないと理解できない状態ってことだからなぁ。
それなら普通に入門書を読むべき (その上でどうしても理解できない箇所があるならそれを質問すべき) という話だし、
理解する気が無くてそういうプログラムが欲しいだけなら宿題スレに投下したほうがいい。
それなら普通に入門書を読むべき (その上でどうしても理解できない箇所があるならそれを質問すべき) という話だし、
理解する気が無くてそういうプログラムが欲しいだけなら宿題スレに投下したほうがいい。
859デフォルトの名無しさん (スップ Sdfa-XVTg)
2022/07/22(金) 03:00:46.63ID:GQs5tpkHd 質問者です
僕は答えだけが欲しいんです。どうして説教なんかしてくるんですか?
貴方達は黙ってコードを書いてくれるだけでいいんです。それ以外のことを私は貴方達に求めていません
ご回答よろしくお願い致します
僕は答えだけが欲しいんです。どうして説教なんかしてくるんですか?
貴方達は黙ってコードを書いてくれるだけでいいんです。それ以外のことを私は貴方達に求めていません
ご回答よろしくお願い致します
860蟻人間 ◆T6xkBnTXz7B0 (スププ Sdfa-l1gu)
2022/07/22(金) 04:01:58.51ID:9CWw4cOJd 成績を収める配列変数を宣言して下さい。
ループ変数iとforループを使ってデータ入力する処理を記述して下さい。
ループ変数iとforループを使って合計を求める処理を記述して下さい。
合計と件数より、平均値を計算して下さい。
ループ変数iとforループを使ってデータ入力する処理を記述して下さい。
ループ変数iとforループを使って合計を求める処理を記述して下さい。
合計と件数より、平均値を計算して下さい。
861デフォルトの名無しさん (ワッチョイ 9a97-tdwJ)
2022/07/22(金) 13:35:19.04ID:63Xcy7bk0 >>859
回答するから駅前でパンツ脱いで待ってろ
回答するから駅前でパンツ脱いで待ってろ
862デフォルトの名無しさん (ブーイモ MM99-6rZy)
2022/07/22(金) 13:53:06.84ID:o6RHeQNrM jkの視線が辛いです…
863デフォルトの名無しさん (スップ Sdfa-br8/)
2022/07/22(金) 16:50:00.97ID:FTsytUCEd 近道を教えてください
目的地?そんなもの知らん
いじわるしないで近道だけ教えてくださいよ
目的地?そんなもの知らん
いじわるしないで近道だけ教えてくださいよ
864デフォルトの名無しさん (ワッチョイ fa69-GsVe)
2022/07/22(金) 17:05:43.46ID:5FG7Keur0 だから宿題スレ逝けってば
865デフォルトの名無しさん (ワッチョイ 69bb-eHP4)
2022/07/22(金) 17:48:50.97ID:xVgLzEHZ0 他人にコード書いてもらいたいならお金払うのが常識だぞ
勉強になったな
勉強になったな
866デフォルトの名無しさん (ワッチョイ daad-Vb2/)
2022/07/22(金) 18:36:47.63ID:iW5ae+Pc0867デフォルトの名無しさん (スッップ Sdfa-XVTg)
2022/07/22(金) 20:52:21.05ID:6vEMzc8Xd868ハノン ◆QZaw55cn4c (US 0H5a-PwMD)
2022/07/22(金) 21:13:42.27ID:axiBU42YH 炎上学習法がはじまりました…
869デフォルトの名無しさん (スップ Sdfa-br8/)
2022/07/22(金) 22:22:56.34ID:V/ouQpU1d >>867
皮肉って概念を聞いたことあるかね
皮肉って概念を聞いたことあるかね
870デフォルトの名無しさん (ワッチョイ daad-Vb2/)
2022/07/22(金) 23:07:49.17ID:iW5ae+Pc0 そういや Excel 使った方が楽にできそうな問題だな。
871デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/23(土) 06:55:01.01ID:GjOkJS/b0 絶望的に適性ないやつがいるな
そんな無駄なことは今すぐやめろ
限りある人生をもっと有意義なことに使え
そんな無駄なことは今すぐやめろ
限りある人生をもっと有意義なことに使え
872デフォルトの名無しさん (ワッチョイ 13ad-CF/B)
2022/07/23(土) 20:24:50.53ID:xI/QpgaL0 たとえば?
873デフォルトの名無しさん (US 0H73-RyvJ)
2022/07/23(土) 20:54:12.53ID:ZMU4WQ2EH >>871
1.適性がない、というその適性を定義してください。
2.適性がない、となぜ判断したのか 1. をもとに詳しく記述してください
3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します
以上
1.適性がない、というその適性を定義してください。
2.適性がない、となぜ判断したのか 1. をもとに詳しく記述してください
3.1.2.が出来ないのではないのならば、あなたこそ、あなたのいう適性をもちあわせていない、と私は判断します
以上
874デフォルトの名無しさん (スプッッ Sd73-ENu5)
2022/07/23(土) 21:02:39.58ID:qM4duTiyd エラーや不具合があったときに理屈じゃなくて直感ですぐに原因が思いつくタイプは適性があると思う
経験で補えるっちゃ補えるけど
経験で補えるっちゃ補えるけど
875デフォルトの名無しさん (スッププ Sd33-8HTV)
2022/07/23(土) 22:07:51.06ID:HvDaSJUkd >>873
あんたの判断がどうかしたのか
あんたの判断がどうかしたのか
876デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/23(土) 22:19:32.27ID:KvepzSxm0 当社比
877デフォルトの名無しさん (ワッチョイ 59e6-RyvJ)
2022/07/23(土) 23:01:14.87ID:FDsLOdQw0 >>874
人間の無意識領域が活発に活動している証拠ですね
最近は前野隆司氏の受動意識仮説に心惹かれます
実験心理学からは「準備運動電位」がずいぶん前に提示されていますが、今はどこまでわかっているのでしょうか?
https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
人間の無意識領域が活発に活動している証拠ですね
最近は前野隆司氏の受動意識仮説に心惹かれます
実験心理学からは「準備運動電位」がずいぶん前に提示されていますが、今はどこまでわかっているのでしょうか?
https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
878デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 06:47:50.60ID:cLNfquIV0 >>873
どうした、頭に血が昇ってw
身に覚えがあるんだろ
別に俺が定義しようがしまいが関係ない
おまえが直面している現実が全てだ
コード書けねえんだろバーカw
そんなん俺は厨房の頃からやってたぜ
当時はBASICすらなく機械語だった
やるやつは人のせいになんかしねえんだよ
どうした、頭に血が昇ってw
身に覚えがあるんだろ
別に俺が定義しようがしまいが関係ない
おまえが直面している現実が全てだ
コード書けねえんだろバーカw
そんなん俺は厨房の頃からやってたぜ
当時はBASICすらなく機械語だった
やるやつは人のせいになんかしねえんだよ
879デフォルトの名無しさん (スップ Sd33-ENu5)
2022/07/24(日) 07:04:34.40ID:gwuc5Le4d ジジイがイキってるの悲しすぎるな
キャリア積んだおっさんならもうコードなんて書いてないのに
キャリア積んだおっさんならもうコードなんて書いてないのに
880デフォルトの名無しさん (スッププ Sd33-8HTV)
2022/07/24(日) 07:35:48.77ID:kz71o77Jd881デフォルトの名無しさん (ラクッペペ MMeb-a0il)
2022/07/24(日) 08:01:42.09ID:QsSUkFLAM 直感というより論理(左脳)と感性(右脳)のどちらの活性が高いかの違い
882デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/24(日) 08:03:50.29ID:bdlqmtah0883デフォルトの名無しさん (スップ Sd73-E5Ow)
2022/07/24(日) 08:41:03.73ID:mCJq3UO5d >>879
何も知らねえネンネだなw
熟練者を歳だけでやめさせるバカ企業が
今どうなってるか見りゃわかるだろめくら
IT業界だけ特別とでも思ってんのか
昭和の一時期だけ特別だったが
いい歳こいたジジイが言ってんなら
進化の止まった化石はてめーだ
何も知らねえネンネだなw
熟練者を歳だけでやめさせるバカ企業が
今どうなってるか見りゃわかるだろめくら
IT業界だけ特別とでも思ってんのか
昭和の一時期だけ特別だったが
いい歳こいたジジイが言ってんなら
進化の止まった化石はてめーだ
884デフォルトの名無しさん (スップ Sd33-ENu5)
2022/07/24(日) 09:04:36.35ID:gwuc5Le4d885デフォルトの名無しさん (ワッチョイ 59e6-RyvJ)
2022/07/24(日) 10:46:43.07ID:Zzdkl5Gk0 >>880
しかし、生まれつき、あるいは育ちのせいであるのかもしれませんが、無意識領域が活発に活動しやすい人、というのはあるかもしれませんよ
人はそれを「閃きの人」と呼ぶようですが
そして無意識領域がよく働く人はプログラマの適性があるといってもいいでしょうね
https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
しかし、生まれつき、あるいは育ちのせいであるのかもしれませんが、無意識領域が活発に活動しやすい人、というのはあるかもしれませんよ
人はそれを「閃きの人」と呼ぶようですが
そして無意識領域がよく働く人はプログラマの適性があるといってもいいでしょうね
https://mevius.5ch.net/test/read.cgi/tech/1556284220/703
https://mevius.5ch.net/test/read.cgi/tech/1640401906/23
886デフォルトの名無しさん (ラクッペペ MMeb-a0il)
2022/07/24(日) 11:42:01.96ID:W6pjxqRvM 閃き改変スパゲティ
887デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
2022/07/24(日) 16:22:46.57ID:9ixHhHoi0 BASICもない時代か。
俺の時は TK-80 に BS 乗っかったやつが BIT-INN に並んでたな。カラーの COMPO-BS もあった。
その他 Apple ][、PET、TRS-80、BASIC MASTER Level 2、MZ-80K 等がある時代で、フロッピーディスクが Apple のやつは1枚2000円だったかな?
俺の時は TK-80 に BS 乗っかったやつが BIT-INN に並んでたな。カラーの COMPO-BS もあった。
その他 Apple ][、PET、TRS-80、BASIC MASTER Level 2、MZ-80K 等がある時代で、フロッピーディスクが Apple のやつは1枚2000円だったかな?
888デフォルトの名無しさん (アウアウウー Sa5d-1Kr0)
2022/07/24(日) 16:31:31.34ID:95dB6L1Ta COMPOにカラーなんてあった?
889デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
2022/07/24(日) 16:45:38.99ID:9ixHhHoi0890デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 16:49:13.87ID:cLNfquIV0 >>884
コード書けねえ産業廃棄物がコーダー馬鹿にしてんな
フリーターだのニートだのってレベルの稼ぎの扶養虫にしかなれる見込ねえくせに
俺は生まれながらの帝王だ退かぬ媚びぬ省みぬだと? ぶわははは
這い上がる気力のねえやつに栄光はねえんだよ、憶えておきな
コード書けねえ産業廃棄物がコーダー馬鹿にしてんな
フリーターだのニートだのってレベルの稼ぎの扶養虫にしかなれる見込ねえくせに
俺は生まれながらの帝王だ退かぬ媚びぬ省みぬだと? ぶわははは
這い上がる気力のねえやつに栄光はねえんだよ、憶えておきな
891デフォルトの名無しさん (エムゾネ FF33-8HTV)
2022/07/24(日) 17:04:41.33ID:xRzJF5neF892デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/24(日) 17:18:29.98ID:bdlqmtah0 なかったと思うよ、そもそもCOMPO-BS/80はキャラクター表示しかできないし
893デフォルトの名無しさん (US 0H0b-RyvJ)
2022/07/24(日) 17:25:59.63ID:C0umvz7vH >>891
デバッグ箇所の発見にも説明が求められるのですか?バグが修正されたことを証明できれば十分なのではないでしょうか?
デバッグ箇所の発見にも説明が求められるのですか?バグが修正されたことを証明できれば十分なのではないでしょうか?
894デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 17:34:50.38ID:cLNfquIV0 発見に至る思考過程はいらんな
ドライに事実関係の説明のみで足りる
犯人探しは俺らの仕事ではなく
下手に口を出すとこっちが立場悪くなる
ドライに事実関係の説明のみで足りる
犯人探しは俺らの仕事ではなく
下手に口を出すとこっちが立場悪くなる
895デフォルトの名無しさん (スップ Sd33-8HTV)
2022/07/24(日) 18:23:35.95ID:nci3iowod896デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/24(日) 18:43:56.60ID:3i0SwxtcH >>895
話をずらしましたね
私は
>デバッグ箇所の発見
つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね
話をずらしてはいけませんよね
話をずらしましたね
私は
>デバッグ箇所の発見
つまり、どこから手をつければいいか当たりをつける能力について言及したのであって、発見したバグの振る舞いについて説明する必要はないとはいっていませんね
話をずらしてはいけませんよね
897デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/24(日) 18:49:15.54ID:DQlWH9SB0 どこにバグがあるか、ゴーストがささやいてくれる
898デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 18:52:37.42ID:cLNfquIV0 言い逃れの天才はいらねーよ
頼むから志願してくんな
ゴミ処理だけでどんだけ負担か考えろ馬鹿が
頼むから志願してくんな
ゴミ処理だけでどんだけ負担か考えろ馬鹿が
899デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 18:54:41.69ID:cLNfquIV0 それで給料くださいだと? 金銭感覚が絶望的にバグってる超危険人物め
900デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/24(日) 19:03:04.31ID:DQlWH9SB0 そういう人物は確かにいる
システム障害時に、数分で原因を調べ上げ復旧する奴
システム障害時に、数分で原因を調べ上げ復旧する奴
901デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/24(日) 19:24:24.29ID:ZZNXvMhPH902デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/24(日) 19:27:04.95ID:cLNfquIV0 電位ってそれ以上でもそれ以下でもないな
喩え話でもしたいようだが、この世界では究極の最重度池沼ってだけw
喩え話でもしたいようだが、この世界では究極の最重度池沼ってだけw
903デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/24(日) 19:32:05.82ID:bdlqmtah0904デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/24(日) 19:58:27.05ID:3wgufn1TH >>903
そんなことはあたりまえでしょう?
手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そういう人間の考え方が、単にロジック一辺倒ではないのでは?という切り口で話をしているものだと思っているのですが
あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
そんなことはあたりまえでしょう?
手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そういう人間の考え方が、単にロジック一辺倒ではないのでは?という切り口で話をしているものだと思っているのですが
あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
905デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
2022/07/24(日) 20:09:14.55ID:IZxLU3+7a 自分が正しいと考えていないに決まってるだろ
906デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/24(日) 20:21:06.06ID:bdlqmtah0 >>904
> 手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
それでないと見つからないバグもある
> でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そう言うのは経験値が違う
まあその考え方を文書化できるかどうかは別の話
> あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
> そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
お前はテストもしないのかよ
> 手当たりしだいにしらみつぶしに見てバグが見つかるとでも?
それでないと見つからないバグもある
> でもね、凡人が見当もつかない糸口をたどって(バグつぶしに限らず)問題解決を行う現場を見てきましたよ
そう言うのは経験値が違う
まあその考え方を文書化できるかどうかは別の話
> あるいは自分のコーディングの最中に自分のミス・バグを見つけ出すのは、最初自分が正しいと考えているだけに、結構難しいことだと思っているのですが、
> そういうときは非凡な人はどういう思考方法をとっているものなんでしょうか?
お前はテストもしないのかよ
907デフォルトの名無しさん (ワッチョイ 13ad-SXL5)
2022/07/24(日) 21:29:00.78ID:9ixHhHoi0 スレが活性化したようだな。
読む気が起こらんけど。
読む気が起こらんけど。
908デフォルトの名無しさん (オッペケ Sr85-m1VM)
2022/07/24(日) 21:42:14.57ID:lVfeNqR1r 全然、C言語の話にならんな
909デフォルトの名無しさん (ワントンキン MMd3-Z4c7)
2022/07/24(日) 21:44:29.10ID:+vY6C834M 話題に参加できない…
910デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/25(月) 06:28:56.85ID:DH7dOKBU0 何でしらみつぶしが出てくるんだ
不具合の内容から疑われることを挙げて
排除できる項目を排除して疑う範囲を狭めていくにあたり
論理思考が得意なやつとそうでないやつの違いが出るってだけだ
不具合の内容から疑われることを挙げて
排除できる項目を排除して疑う範囲を狭めていくにあたり
論理思考が得意なやつとそうでないやつの違いが出るってだけだ
911デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/25(月) 07:35:59.20ID:fNFid1J7H912デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 07:56:46.33ID:GzNr1keE0913デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/25(月) 08:14:58.48ID:DH7dOKBU0 バグの排除とは言ってない
疑いが晴れたものを検査から除外するということだ
なぜ排他が出てくるのか脈絡がわからない
疑いが晴れたものを検査から除外するということだ
なぜ排他が出てくるのか脈絡がわからない
914デフォルトの名無しさん (アウアウウー Sa5d-T1rX)
2022/07/25(月) 09:21:33.29ID:/kQlrWHQa >>913
> バグの排除とは言ってない
おれも言ってないけど?
> 疑いが晴れたものを検査から除外するということだ
検査の意味がわからんが調査のことならしらみつぶしは疑いを晴らす方法の一つ
> なぜ排他が出てくるのか脈絡がわからない
お前がしらみつぶしを排除しようとしてるから
> バグの排除とは言ってない
おれも言ってないけど?
> 疑いが晴れたものを検査から除外するということだ
検査の意味がわからんが調査のことならしらみつぶしは疑いを晴らす方法の一つ
> なぜ排他が出てくるのか脈絡がわからない
お前がしらみつぶしを排除しようとしてるから
915デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/25(月) 09:31:36.48ID:DH7dOKBU0 アホ検知用にわざとアンカー貼らなかったら見事に引っかかったなw
916デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 09:53:41.75ID:GzNr1keE0 なにを引っ掛けたつもりになってるのかさっぱりわからん
まあまともなレスを返せなくなったんだろうなw
まあまともなレスを返せなくなったんだろうなw
917デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 11:30:58.60ID:TD+9RuG80 仕事している人は、こんなところで遊んではいない
918デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
2022/07/25(月) 11:45:05.33ID:dJJE5upaa C++の話題は禁止?
919デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 11:49:31.88ID:TD+9RuG80 禁止ではないと思うが、スレ違い扱い受ける
920デフォルトの名無しさん (スップ Sd33-8HTV)
2022/07/25(月) 12:13:08.37ID:n7JQk0Isd >>901
ただのDSPだろう
CPU(脳)が応答していては間に合わない用途のためにプログラマブルなDSPがある
ボールが見えてから打つかどうか決めていては間に合わない
このコースに来たらバットを振れと反射神経をプログラムできるようになっている
それがあたかも脳の判断に先行してるように見えるだけ
ただのDSPだろう
CPU(脳)が応答していては間に合わない用途のためにプログラマブルなDSPがある
ボールが見えてから打つかどうか決めていては間に合わない
このコースに来たらバットを振れと反射神経をプログラムできるようになっている
それがあたかも脳の判断に先行してるように見えるだけ
921デフォルトの名無しさん (スッップ Sd33-orYr)
2022/07/25(月) 12:52:39.70ID:BRC10lp0d >>914
流れ読めてないアフォハケーン
流れ読めてないアフォハケーン
922デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 13:27:55.29ID:GzNr1keE0 >>921
レスできなくなって流れが読めてない~ってバカ?w
レスできなくなって流れが読めてない~ってバカ?w
923デフォルトの名無しさん (ワンミングク MMd3-Z4c7)
2022/07/25(月) 13:30:31.02ID:lj82liZDM シーッ
924デフォルトの名無しさん (パナファーイ FA4b-orYr)
2022/07/25(月) 15:49:07.62ID:iiUi9YtaA はっきり言ってやらなきゃ解らんようだな
バグの排除と言ったのが誰なのか
おまえ読み間違えてんだよ
バグの排除と言ったのが誰なのか
おまえ読み間違えてんだよ
925デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 15:58:23.55ID:GzNr1keE0926デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 16:01:28.30ID:TD+9RuG80 ロジックは合っているがバグだ、というのは割とよくある(まれにではない)
927デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 16:36:40.16ID:GzNr1keE0928デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 17:00:35.20ID:TD+9RuG80 今は昔、DBが気軽に使えなかったシステムがあった。
プレーンファイルにデータが格納されていた。
お客の要求は、
「その中からキャンセルされたデータを見つけ、取り除いてくれ。件数は高々数十件のはず」
当時のSEは、キャセルデータ一覧から一つずつデータを取り出し、
格納されたファイルから見つけてはキャンセルフラグをセットしていく
という設計をした。スッキリした設計で、客のレビューも通った。
プログラマは仕様書通りにプログラムを作成した。
実運用に入ったところ、この処理がいつまで経っても(何時間も)終わらない事態になった。
原因調査を依頼され、調べて対処方法を提案し、
プログラムの手直しをした。
その結果、処理は10分程度で終わる様になった。
実データは、お客の想定よりは多かった(と言っても100件程度だったが)ことと
試験環境が貧弱で、性能評価が不十分だったことが挙げられた(公式見解)。
プレーンファイルにデータが格納されていた。
お客の要求は、
「その中からキャンセルされたデータを見つけ、取り除いてくれ。件数は高々数十件のはず」
当時のSEは、キャセルデータ一覧から一つずつデータを取り出し、
格納されたファイルから見つけてはキャンセルフラグをセットしていく
という設計をした。スッキリした設計で、客のレビューも通った。
プログラマは仕様書通りにプログラムを作成した。
実運用に入ったところ、この処理がいつまで経っても(何時間も)終わらない事態になった。
原因調査を依頼され、調べて対処方法を提案し、
プログラムの手直しをした。
その結果、処理は10分程度で終わる様になった。
実データは、お客の想定よりは多かった(と言っても100件程度だったが)ことと
試験環境が貧弱で、性能評価が不十分だったことが挙げられた(公式見解)。
929デフォルトの名無しさん (ワッチョイ 5109-SXL5)
2022/07/25(月) 17:06:35.01ID:p29EsXcp0 今は昔 ドラゴンボールというものありけり
7つ集めないと気軽に使えなかった
7つ集めないと気軽に使えなかった
930デフォルトの名無しさん (ワッチョイ d901-KxVo)
2022/07/25(月) 19:19:30.93ID:0R5nn0qA0 非同期やマルチスレッドなんかの 暗に平行に動いてるようなやつ
の想定順序外の順で進んでったとき
の想定順序外の順で進んでったとき
931デフォルトの名無しさん (ワッチョイ 5336-VsAj)
2022/07/25(月) 19:25:09.85ID:gun8tVmY0 昔のプログラム系コラムで(うろ覚えなんで改変あり)
統計計算するコード書いて、
自分で用意したデータでは問題なかったが、
デバッガ―チームのデータでは誤差が酷いとの報告が。
変数をfloatからdoubleにしても改善せず、
使ったテストデータ見せてもらったら数値が10兆のや1/10兆のまであったとかなんとか。
統計計算するコード書いて、
自分で用意したデータでは問題なかったが、
デバッガ―チームのデータでは誤差が酷いとの報告が。
変数をfloatからdoubleにしても改善せず、
使ったテストデータ見せてもらったら数値が10兆のや1/10兆のまであったとかなんとか。
932デフォルトの名無しさん (ワッチョイ 8bbb-OROS)
2022/07/25(月) 19:42:53.87ID:uz33IoOs0 それって範囲チェックを怠った普通のバグよね?
933デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 20:13:02.04ID:GzNr1keE0934デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 21:04:57.01ID:TD+9RuG80 仕様通りに作ってあるってことで
どこもバグだと認めず、修正にかかれなかった
どこもバグだと認めず、修正にかかれなかった
935デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/25(月) 21:23:11.69ID:GzNr1keE0 実行時間の上限も書いてなかったんでしょ?
ならバグじゃないからそりゃ誰も修正しないよね
ならバグじゃないからそりゃ誰も修正しないよね
936デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/25(月) 22:30:59.72ID:TD+9RuG80 そうもいかん
放置すれば業務が止まる
放置すれば業務が止まる
937デフォルトの名無しさん (ワッチョイ 1301-T1rX)
2022/07/26(火) 04:44:04.50ID:1cOtUCQ/0 なら仕様を作った奴がポンコツだったってだけの話
938デフォルトの名無しさん (ワッチョイ b946-Ilc3)
2022/07/26(火) 06:23:30.91ID:3o/UjHLA0 >>937
奈良仕様... 要人警護でバグるんだな。
奈良仕様... 要人警護でバグるんだな。
939デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/26(火) 15:23:03.61ID:SJaqZdjxH >>920
それは条件反射ではない普通の「反射」
か、あるいは条件反射ですね
「準備運動電位」
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
1970年代に行われた実験により、ボタンを押す・指を一本曲げる、手首を曲げる等運動の先立って脳に変化が起こる、という観測結果が得られています
2008 年には、被験者が意思決定をするよりも最大 7 秒先立って脳活動が認められる、という^報告がありました
それは条件反射ではない普通の「反射」
か、あるいは条件反射ですね
「準備運動電位」
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
1970年代に行われた実験により、ボタンを押す・指を一本曲げる、手首を曲げる等運動の先立って脳に変化が起こる、という観測結果が得られています
2008 年には、被験者が意思決定をするよりも最大 7 秒先立って脳活動が認められる、という^報告がありました
940デフォルトの名無しさん (ワッチョイ 81da-orYr)
2022/07/26(火) 18:24:38.80ID:fW/tQ0510 その生理現象を検知して価値を生み出すコードを書くならともかく
精神論や根性論の類いに持ち出す野郎はスレチ
精神論や根性論の類いに持ち出す野郎はスレチ
941デフォルトの名無しさん (US 0H0b-RyvJ)
2022/07/26(火) 20:36:46.75ID:s+/k7yg8H942デフォルトの名無しさん (オッペケ Sr85-YGxf)
2022/07/26(火) 20:59:48.42ID:RzFS95olr そんなの経験の差でしょ
脳科学なんかを引くより経験積んだほうが実用的で合理的
脳科学なんかを引くより経験積んだほうが実用的で合理的
943デフォルトの名無しさん (US 0H0b-RyvJ)
2022/07/26(火) 21:21:37.87ID:LALlY+2gH944デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/26(火) 21:22:24.36ID:4nABh0qj0 バグ取りの上手い人というか、発見が早い人は
アスペ気味の人が多い
これは悪い意味で言っているのではなく
天才肌というか、直感でものを把握出来る人という意味です
アスペ気味の人が多い
これは悪い意味で言っているのではなく
天才肌というか、直感でものを把握出来る人という意味です
945デフォルトの名無しさん (US 0H0b-RyvJ)
2022/07/26(火) 21:24:16.26ID:LALlY+2gH946デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/26(火) 21:33:29.39ID:4nABh0qj0 そういうのは、誰もマネが出来ないから参考にするのは無理でしょう
脳細胞のシナプスからして違うかもしれないし
脳細胞のシナプスからして違うかもしれないし
947アリ人間 ◆T6xkBnTXz7B0 (スフッ Sd33-019N)
2022/07/26(火) 21:58:01.96ID:SFGiBpCod プログラムの仕組みを完全に理解したいなら、ITパスポート、基本情報、コンピュータサイエンスの3つ。
948デフォルトの名無しさん (スップ Sd73-orYr)
2022/07/28(木) 12:32:34.18ID:FYpyeWPbd >>941
C++の話ではないね
C++の話ではないね
949デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/28(木) 14:58:27.27ID:9giz0zU00 あ、Cだった
同じことだが
同じことだが
950デフォルトの名無しさん (ワッチョイ 1363-VsAj)
2022/07/28(木) 15:27:42.65ID:hSAjJRb60 混ぜたら駄目、危険!
951デフォルトの名無しさん (ワッチョイ 0bae-SXL5)
2022/07/28(木) 17:42:15.99ID:9giz0zU00 プロの化学者つかまえて次亜塩素酸ナトリウムと塩酸を混ぜるなとドヤるアホ
みたいなもんだな
みたいなもんだな
952デフォルトの名無しさん (ラクッペペ MMeb-a0il)
2022/07/28(木) 17:53:09.20ID:j+X5VIDEM 混ぜるな危険
ECMA 372
ECMA 372
953デフォルトの名無しさん (ワッチョイ a921-eGtk)
2022/07/28(木) 19:46:49.41ID:X16X3UK80954デフォルトの名無しさん (US 0Hd3-RyvJ)
2022/07/28(木) 20:04:33.20ID:KHWw5jDSH >>953
身につくかどうか、ではなく、どんな考え方、思考法、そして可能であればその思考法に似た行動様式等がざっくばらんに出てくることを期待します
身につくかどうか、ではなく、どんな考え方、思考法、そして可能であればその思考法に似た行動様式等がざっくばらんに出てくることを期待します
955デフォルトの名無しさん (アウアウウー Sa5d-R4TS)
2022/07/29(金) 10:43:07.31ID:nIcw6oQba956デフォルトの名無しさん (ワッチョイ a991-/dmg)
2022/07/29(金) 13:39:55.55ID:LR/vrGjN0 これ俺の顔じゃない
鏡がバグってる
鏡がバグってる
957デフォルトの名無しさん (ワッチョイ 79bb-dSCr)
2022/07/30(土) 00:46:07.92ID:wZaxY20D0 組み込みの世界ってまだC言語が主流ですよね?
IoTも同じ?
IoTも同じ?
958デフォルトの名無しさん (ワッチョイ 9a3e-dSCr)
2022/07/30(土) 00:52:24.51ID:B4kVDCsM0 IoT というのは広い概念なのでそれだけではなんとも言えん。
低レイヤもあれば高レイヤもある。
低レイヤもあれば高レイヤもある。
959デフォルトの名無しさん (ワンミングク MM8a-KtxA)
2022/07/30(土) 13:46:54.93ID:kKuVH5i8M I Of the Tiger
960デフォルトの名無しさん (ワッチョイ 16ae-1wwR)
2022/07/30(土) 15:28:57.06ID:sZRL8Eez0 Intensity Output Time
961デフォルトの名無しさん (ワッチョイ d68f-lbI7)
2022/07/30(土) 16:11:54.93ID:2k62MWGF0 次のCの仕様が出てくるというのにこのスレでは全く話題にならないんだな
962デフォルトの名無しさん (ワッチョイ 1602-9Top)
2022/07/30(土) 16:16:00.43ID:dAB37O5c0 tccで標準入力からソース読むプログラムに、さらにstdinからデータ読ませるのは無理ですかね?
(echo "ccode with stdin" | tcc -run - ) <file
みたいな感じで(fileまでソースと取られてコンパイルエラー)
一時ファイル作れば出来るけど、ちょっとワンライナー書くときに不便を感じる
echo "main(char*c, char**v){puts(v[0]);puts(__FILE__);}" | tcc -run -
は
-
<stdin>
を出力します、多分tccはプロセスを自己書き換えで置き換えるんでしょうか?ファイルハンドルが継承されてる?
(echo "ccode with stdin" | tcc -run - ) <file
みたいな感じで(fileまでソースと取られてコンパイルエラー)
一時ファイル作れば出来るけど、ちょっとワンライナー書くときに不便を感じる
echo "main(char*c, char**v){puts(v[0]);puts(__FILE__);}" | tcc -run -
は
-
<stdin>
を出力します、多分tccはプロセスを自己書き換えで置き換えるんでしょうか?ファイルハンドルが継承されてる?
963デフォルトの名無しさん (ワッチョイ cdb0-1wwR)
2022/07/30(土) 16:20:55.72ID:2BJ7IgJr0 新しいCってそもそもどこで需要があるんだろう
964デフォルトの名無しさん (ワッチョイ 79bb-dSCr)
2022/07/30(土) 16:38:39.78ID:wZaxY20D0965デフォルトの名無しさん (ラクッペペ MMee-kNao)
2022/07/30(土) 16:55:11.02ID:KiVbgp3AM 組み込みと言ってもラズパイ環境では完全にPythonが主流でC/C++(gcc)はあまり利用されてないイメージがある
966デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/30(土) 17:15:44.08ID:rf6S0zxh0 組込って普通は静的バイナリにするんじゃないの
967はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/30(土) 17:20:48.89ID:B4kVDCsM0 >>964
C23 には defer は入らない見込み。 全体としては C++ の後追い的な変更が多い。
auto が型推論付きの変数定義になるだとか、constexpr や nullptr が導入されるだとか、
属性の表記法が C++ 風の [[ ]] を使った形になるだとか、そういう感じのやつ。
(ちなみに今回導入される constexpr は変数には付けられるが関数には付けられないので
コンパイル時プログラミングが C++ みたいに出来るわけではない。
定数式の成立要件が C と C++ で違うので C++ 寄りにする追加機能。)
思い切った変更ではあるが、根本的なプログラミングスタイルを変えない程度のバランスのとれたところだと思う。
C23 には defer は入らない見込み。 全体としては C++ の後追い的な変更が多い。
auto が型推論付きの変数定義になるだとか、constexpr や nullptr が導入されるだとか、
属性の表記法が C++ 風の [[ ]] を使った形になるだとか、そういう感じのやつ。
(ちなみに今回導入される constexpr は変数には付けられるが関数には付けられないので
コンパイル時プログラミングが C++ みたいに出来るわけではない。
定数式の成立要件が C と C++ で違うので C++ 寄りにする追加機能。)
思い切った変更ではあるが、根本的なプログラミングスタイルを変えない程度のバランスのとれたところだと思う。
968はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/30(土) 17:34:09.22ID:B4kVDCsM0 >>966
もちろんそういう部分も大きいけど……。
リッチな組み込みは一昔前のパソコンを超えるくらいの性能はあるし Linux くらいは載るので、
デバイスドライバさえ用意すればあとはパソコンみたいに使えるという場合は普通にある。
かつては組み込みと言えばそのデバイスドライバの部分こそ大きかったと思うんだが、
IoT を意識するレベルの製品だとアプリケーションレイヤが巨大なので Python くらいは動くこともあるだろう。
主流かというとちょっと疑問ではあるが……。
もちろんそういう部分も大きいけど……。
リッチな組み込みは一昔前のパソコンを超えるくらいの性能はあるし Linux くらいは載るので、
デバイスドライバさえ用意すればあとはパソコンみたいに使えるという場合は普通にある。
かつては組み込みと言えばそのデバイスドライバの部分こそ大きかったと思うんだが、
IoT を意識するレベルの製品だとアプリケーションレイヤが巨大なので Python くらいは動くこともあるだろう。
主流かというとちょっと疑問ではあるが……。
969デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/30(土) 17:38:53.84ID:rf6S0zxh0 それは組み込みと言うより、OS上で動かしている単なるアプリだろう
970デフォルトの名無しさん (ラクッペペ MMee-kNao)
2022/07/30(土) 17:48:55.44ID:lDkW8Lp7M971デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/30(土) 17:50:58.85ID:rf6S0zxh0 パソコンで同じことやっても組み込みなんて言わないし
972デフォルトの名無しさん (ラクッペペ MMee-kNao)
2022/07/30(土) 18:00:48.67ID:jaybBP1OM 組み込みの開発はクロス開発が基本なのでパソコンはただの端末だけどね
プログラムはボード上のSoCで実行される
プログラムはボード上のSoCで実行される
973デフォルトの名無しさん (ワッチョイ 79bb-dSCr)
2022/07/30(土) 19:32:55.53ID:wZaxY20D0974デフォルトの名無しさん (ワッチョイ 7a01-Jv5Y)
2022/07/30(土) 19:50:32.99ID:zHogqexf0 >>964
> 高レイヤーだと普通にリッチな言語が使われたりするのかな
複合機などはWebサーバー程度は普通に入ってるから設定画面等は HTML, JavaScript, CSS, Python を使ってたりする
IWS (Internal Web Server:HTML, JavaScript, CSS, Python)
https://dsp.konicaminolta.jp/best-program
もちろんOS上で動いてるし、でかいシステムだとPCその物を内蔵してたりすることもある
なのでこんなものが売られてる
https://jpn.nec.com/fc/index.html
> 高レイヤーだと普通にリッチな言語が使われたりするのかな
複合機などはWebサーバー程度は普通に入ってるから設定画面等は HTML, JavaScript, CSS, Python を使ってたりする
IWS (Internal Web Server:HTML, JavaScript, CSS, Python)
https://dsp.konicaminolta.jp/best-program
もちろんOS上で動いてるし、でかいシステムだとPCその物を内蔵してたりすることもある
なのでこんなものが売られてる
https://jpn.nec.com/fc/index.html
975デフォルトの名無しさん (ラクッペペ MMee-kNao)
2022/07/30(土) 19:51:42.13ID:DgXxKl0UM IoTというよりはスタンドアローン環境か小規模な独自ネットワーク程度の組み込み分野の方がC/C++利用は多いと思う
976デフォルトの名無しさん (ワッチョイ 79bb-dSCr)
2022/07/30(土) 23:12:48.90ID:wZaxY20D0977はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/30(土) 23:53:43.60ID:B4kVDCsM0978デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/31(日) 00:41:41.63ID:n00x/A2v0 そうなるとPC使っていても組み込み扱いして良いと言うことになりますよね
近い構成どころか、何でもありになりそう
近い構成どころか、何でもありになりそう
979はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/31(日) 01:25:42.56ID:9sXTRHUo0 そうだよ。
技術的な実態としてはそんなにはっきりした境界がない。 なんでもありだ。
用途の側でふんわりと分野が分かれてる。
技術的な実態としてはそんなにはっきりした境界がない。 なんでもありだ。
用途の側でふんわりと分野が分かれてる。
980デフォルトの名無しさん (アウアウウー Sa09-gD8W)
2022/07/31(日) 01:39:56.41ID:AA5JChgka 組込とハード制御的なやつの混同はよくありますね
981デフォルトの名無しさん (ワッチョイ 16ae-1wwR)
2022/07/31(日) 06:39:14.45ID:1QnevV7r0982デフォルトの名無しさん (ワンミングク MM8a-arNi)
2022/07/31(日) 14:01:45.17ID:k/gcENLBM 古いソースが問題なくコンパイル出来ないと、それはそれで問題にされる。
今でもトライグラフ受け入れないと駄目なんだろう
今でもトライグラフ受け入れないと駄目なんだろう
983ハノン ◆QZaw55cn4c (US 0H7d-p9PZ)
2022/07/31(日) 17:43:38.22ID:E3I5T4z5H >>981
C99 の C++ との互換性がまったく取れていない変てこ機能はさっさと削除してほしいものです
いまや私は C のソースを書くのに C++ コンパイラが通るか試してみる体たらく、あれらはいったいなんなんだ?
C99 の C++ との互換性がまったく取れていない変てこ機能はさっさと削除してほしいものです
いまや私は C のソースを書くのに C++ コンパイラが通るか試してみる体たらく、あれらはいったいなんなんだ?
984はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/31(日) 19:20:45.67ID:9sXTRHUo0 今回「削除」になったのはいわゆるK&Rスタイルの関数定義くらいだな。
いずれ削除するということは以前から書かれてたし、
習慣的にも行儀が悪いという考え方が支配的だから
これで問題が起こるなら長い移行期間中に対応できてなかったほうが悪いと言ってよかろ。
いずれ削除するということは以前から書かれてたし、
習慣的にも行儀が悪いという考え方が支配的だから
これで問題が起こるなら長い移行期間中に対応できてなかったほうが悪いと言ってよかろ。
985デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/31(日) 19:35:38.56ID:n00x/A2v0 削除って事は、古いソースのコンパイルはもはや出来ないと言うことなんでしょうか
いや、なに、クラシックカーに乗ってみたい位の好奇心ですけど
いや、なに、クラシックカーに乗ってみたい位の好奇心ですけど
986アリ人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-xqSD)
2022/07/31(日) 19:46:09.16ID:sdKo2iJ+d 歳をとるということ 〃
シワが増えるということ 〃
なのに
ぼくたち
私たちは 〃
なぜ、最新機種で進化の止まった古臭いコンパイラを使うのでしょうか
でしょうか
シワが増えるということ 〃
なのに
ぼくたち
私たちは 〃
なぜ、最新機種で進化の止まった古臭いコンパイラを使うのでしょうか
でしょうか
987はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9a3e-dSCr)
2022/07/31(日) 20:23:09.10ID:9sXTRHUo0 >>985
削除された機能を使っていればそういうことになるが、
そもそも C で書かれたプログラムなんてどこかしらで環境依存な部分があるもんだし、
よほど配慮されたものでない限り古いコードは素直には動かないのが普通だろう。
まあ C23 が出来たからと言って C89 (に対応したコンパイラ) が直ちに消滅するわけでもないし、
なんだかんだであと二十年くらいたっても C89 派がそれなりにはいそうな気がする。
削除された機能を使っていればそういうことになるが、
そもそも C で書かれたプログラムなんてどこかしらで環境依存な部分があるもんだし、
よほど配慮されたものでない限り古いコードは素直には動かないのが普通だろう。
まあ C23 が出来たからと言って C89 (に対応したコンパイラ) が直ちに消滅するわけでもないし、
なんだかんだであと二十年くらいたっても C89 派がそれなりにはいそうな気がする。
988デフォルトの名無しさん (ワッチョイ 16ae-1wwR)
2022/07/31(日) 20:35:31.51ID:1QnevV7r0 K&R CこそCの面白さの塊なんだけどな
GCCが「カバにダンスを踊らせるのはあまり面白くない」なんて言ってた人もいるように
歳月とともに雁字搦めになっていく流れは酷くつまらない
GCCが「カバにダンスを踊らせるのはあまり面白くない」なんて言ってた人もいるように
歳月とともに雁字搦めになっていく流れは酷くつまらない
989デフォルトの名無しさん (US 0H7d-p9PZ)
2022/07/31(日) 20:47:12.68ID:TVIRLEiRH >>988
でもね、C のコンパイラは C で記述してほしかったですね
確かにカバの調教は難しいのかもしれませんが
というか、gcc をコンパイルするためだけの c で書かれた c++ コンパイラって需要ありますかね?
でもね、C のコンパイラは C で記述してほしかったですね
確かにカバの調教は難しいのかもしれませんが
というか、gcc をコンパイルするためだけの c で書かれた c++ コンパイラって需要ありますかね?
990デフォルトの名無しさん (アウアウウー Sa09-gD8W)
2022/07/31(日) 20:51:31.04ID:PC792jYOa >>988
無理すんなよ
無理すんなよ
991蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9a-xqSD)
2022/07/31(日) 20:59:27.98ID:sdKo2iJ+d そろ次スレ
992デフォルトの名無しさん (ワッチョイ 7a63-dSCr)
2022/07/31(日) 21:03:23.63ID:n00x/A2v0 ラージモデルでFarポインタ使いまくったプログラム合ったけど、
今は流石に見るのも嫌だと思う
何言ってるか分からないと思うが、俺も分からない
今は流石に見るのも嫌だと思う
何言ってるか分からないと思うが、俺も分からない
993デフォルトの名無しさん (ワッチョイ 7a01-Jv5Y)
2022/07/31(日) 21:17:26.94ID:UwyiR8NW0 >>992
むしろnearポインタの方が面倒だと思うが...
むしろnearポインタの方が面倒だと思うが...
994デフォルトの名無しさん (オッペケ Sr05-5tLW)
2022/08/01(月) 08:38:31.30ID:wVsEVhkpr あり人間とかキチガイ、こっちでも頓珍漢なこと書いてるのか
995ハノン ◆QZaw55cn4c (ワッチョイ 25e6-p9PZ)
2022/08/01(月) 19:47:44.58ID:kaXTkJ9F0 >>992
ラージモデルの far ポインタでしょう?別に far とか書かなくても普通にポインタを書けば far ポインタになったはず
であれば、あとは 64kb の壁を意識してむやみにポインタのインクリメントをせずに上手に部分にわければなんとかなったでしょう
far ポインタでの経験はいろんな場所で活かせる貴重な体験だと思いますよ
私は試食版 LSI-C のスモールモデルで陽に far を指定して far ポインタをバリバリつかっていましたよ
スモールモデルだからコード領域はせまいけれども(near コールしか使えない)、far と書けばデータは 640KB までフルに使えましたし
ラージモデルの far ポインタでしょう?別に far とか書かなくても普通にポインタを書けば far ポインタになったはず
であれば、あとは 64kb の壁を意識してむやみにポインタのインクリメントをせずに上手に部分にわければなんとかなったでしょう
far ポインタでの経験はいろんな場所で活かせる貴重な体験だと思いますよ
私は試食版 LSI-C のスモールモデルで陽に far を指定して far ポインタをバリバリつかっていましたよ
スモールモデルだからコード領域はせまいけれども(near コールしか使えない)、far と書けばデータは 640KB までフルに使えましたし
996デフォルトの名無しさん (ワッチョイ 16ae-G1eK)
2022/08/01(月) 20:05:11.09ID:4CMby4Hu0 インテルのクソ設計でみんな迷惑してたってだけの話
K&R Cの楽しさとは全く何の関係もない
68kと86系は異次元の世界だった
K&R Cの楽しさとは全く何の関係もない
68kと86系は異次元の世界だった
997デフォルトの名無しさん (ワッチョイ 7a01-Jv5Y)
2022/08/01(月) 20:55:56.73ID:4h+jHRsn0 >>995
テキトー書く前に8086 メモリーモデル とか near far huge とかでググってから出直してこい
テキトー書く前に8086 メモリーモデル とか near far huge とかでググってから出直してこい
998ハノン ◆QZaw55cn4c (ワッチョイ 25e6-p9PZ)
2022/08/02(火) 07:34:13.90ID:QS3wPWC90 >>997
私の認識であってますよ
ラージモデルのデフォルトポインタ(データ・コードとも)は far ですし、スモールモデルはどちらも near
しかしスモールモデルでも far ポインタは far と陽に宣言すれば使えるんですよ…
私の認識であってますよ
ラージモデルのデフォルトポインタ(データ・コードとも)は far ですし、スモールモデルはどちらも near
しかしスモールモデルでも far ポインタは far と陽に宣言すれば使えるんですよ…
999デフォルトの名無しさん (スッププ Sd9a-sHoh)
2022/08/02(火) 11:58:06.82ID:ziGJzmHZd Windows16ビットのCでは16ビットハンドルを架空の構造体へのnearポインタとして実装してたな(#define STRICTした場合)
例えばデバイスコンテキストハンドルをビットマップハンドルに代入しようとするとtype mismatchエラーになってすぐわかる
STRICTでないと単なる本来の16ビット整数として扱われ混同しても通ってしまう
win32ではnearがないので普通の32ビットポインタになってしまいメモリがちょっともったいない
例えばデバイスコンテキストハンドルをビットマップハンドルに代入しようとするとtype mismatchエラーになってすぐわかる
STRICTでないと単なる本来の16ビット整数として扱われ混同しても通ってしまう
win32ではnearがないので普通の32ビットポインタになってしまいメモリがちょっともったいない
1000デフォルトの名無しさん (ワッチョイ faad-wcmX)
2022/08/04(木) 18:41:17.13ID:+TMVVsOn0 >>92push(保存)してpop(書き戻し)してるから結局pushしたときのデータになる
popとpushの間のややこしいとこはシカトな
popとpushの間のややこしいとこはシカトな
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 222日 6時間 29分 31秒
新しいスレッドを立ててください。
life time: 222日 6時間 29分 31秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 清涼飲料水から麻薬成分東京都が注意喚起 [おっさん友の会★]
- 生活保護廃止、公務員の給与に最低賃金を適用⇦これをやるだけで国民の9割の不満が解消されるのにやらない理由 [218488394]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 【動画】男女混合レスリングのガチ試合の様子がこちら [738130642]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 【日刊】暇空茜、また敗訴🥸 [359965264]
- 台湾政党が高市首相「存立危機事態」発言に感謝の書簡「我々の心を強く奮い立たせるものでした」 [834922174]
