!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
C23 最新ドラフト
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.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言語なら俺に聞け 161
https://mevius.5ch.net/test/read.cgi/tech/1682053520/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 162
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 2389-FUJr)
2023/10/30(月) 17:13:00.82ID:hHEGE8Ol0140デフォルトの名無しさん (ワッチョイ bfe7-2qxF)
2023/11/30(木) 13:09:50.69ID:EuLMofdV0141はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:54:30.13ID:3QI4e6Tt0 > &a[0] を a と省略出来るだけ
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
意味が同じなわけなので記法の上では省略と言えるんだけど
a が &a[0] のことを意味しているというわけではなく、
言語仕様上の理屈としては a のほうにプリミティブな定義があって &a[0] のほうが構文糖という扱い。
@ E1[E2] は (*((E1)+(E2))) と等価である
A & のオペランドが単項*演算子の結果の場合,*演算子も&演算子も評価せずに両演算子とも取り除いた場合と同じ
(添字演算子の適用結果をオペランドとする場合も同様)
B 配列 (結果が配列型となるような式) は sizeof か & のオペランドであるときを除いて先頭要素を指すポインタに変換される
つまり &a[0] の場合を順番に当てはめるとまず &*(a+0) と同等と見做され、
&* は無かったことにされるので a+0 となり、 0 を足しても内容は変化しないから無視できて a と同じ。
そして a は配列の先頭要素を指すポインタに変換される。
142はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 14:59:53.10ID:3QI4e6Tt0 (順序から言うと配列がポインタに変換されるほうが先だな……。 すまぬ)
143はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/11/30(木) 15:08:15.57ID:3QI4e6Tt0 配列 a は a と書くだけで先頭要素を指すポインタなので
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
&a[0] と書くってのは 0 を足すという要らんことをしているという扱いってこと。
144デフォルトの名無しさん (ワッチョイ 5f79-/KuA)
2023/11/30(木) 20:20:41.06ID:4nwqW1NG0 >>140
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
pがザビ家でaがジオン公国そのものと言ったら判りやすいだろうか
ジオンはザビ家にNTRれたけど元のジオン・ダイクンが掲げた思想(長さとか)はNTRが完了した時点で失われた
その後出てきたアクシズ(ネオ・ジオン)はもっと酷くてジオンと言える部分はNTRしたザビ家の跡取りとその傀儡だけでジオンとは一体何だったのか語れる人物は一人もいない
145デフォルトの名無しさん (ワッチョイ 47e7-xen6)
2023/11/30(木) 20:26:04.69ID:SvZ2/mZg0 >>143
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
そっちのほうが余計なギミックじゃない?
a[]のアドレスが欲しければ&aと書くだけでいいのに
aが自動的にa[]の先頭番地になってしまうからややこしい
ちなみにBASICだと配列と同名の単純変数が作れてしまいこれも今思うと無茶苦茶だった
146デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:46:09.47ID:h/B+JtY5a >>117
意味無いわ
意味無いわ
147デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:47:46.07ID:h/B+JtY5a 完全に理解した!!!
↓
https://ideone.com/g2912A
#include <stdio.h>
#define N 3
int main(int argc, char **argv)
{
char *hoge[] = {"abcd", "efg"};
char **hige = hoge;
char hage[][N] = {"ab", "cd", "ef", "gh"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
↓
https://ideone.com/g2912A
#include <stdio.h>
#define N 3
int main(int argc, char **argv)
{
char *hoge[] = {"abcd", "efg"};
char **hige = hoge;
char hage[][N] = {"ab", "cd", "ef", "gh"};
char (*fuga)[N] = hage;
char (*moga)[N] = {"ab", "cd", "ef", "gh"};
printf("%zd %s %s\n", sizeof(hoge), hoge[0], hoge[1]);
printf("%zd %s %s\n", sizeof(hige), hige[0], hige[1]);
printf("%zd %s %s %s %s\n", sizeof(hage), hage[0], hage[1], hage[2], hage[3]);
printf("%zd %s %s %s %s\n", sizeof(fuga), fuga[0], fuga[1], fuga[2], fuga[3]);
printf("%zd %s %s %s %s\n", sizeof(moga), moga[0], moga[1], moga[2], moga[3]);
return 0;
}
↓
説明してみ
148デフォルトの名無しさん (アウアウウー Sa0b-6V65)
2023/11/30(木) 20:51:51.20ID:h/B+JtY5a アンカ忘れた
>>140
>>140
149はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 21:26:27.48ID:3QI4e6Tt0150デフォルトの名無しさん (ワントンキン MM3f-XlNP)
2023/11/30(木) 22:06:24.41ID:wy49Mw9yM いやいや何を言っとんの?
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
利便性のためにそういう仕様にしてるんだよ
C書いてりゃさすがに分かんだろうよw
151はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-zy57)
2023/11/30(木) 22:36:56.23ID:3QI4e6Tt0 感覚的にはそんなに不自然には感じないんだけど
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
仕様の規則が変則的なのも確かなので
つまりは人間の感覚は不合理なものってことだ。
152デフォルトの名無しさん (ワッチョイ bf5f-2qxF)
2023/11/30(木) 22:41:39.63ID:0Cr+jEwb0 >>147
%zd は知らなかったわ。 勉強になった
%zd は知らなかったわ。 勉強になった
153はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 00:42:09.23ID:U5xjJXbM0 sizeof の結果の型は size_t で、
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
size_t は符号なし整数というだけしか規定されていない処理系定義なんだけど
unsigned int や unsigned long int の別名として定義されていることが多いせいで
それをあてにした形で説明している資料は割とある。
154デフォルトの名無しさん (ワッチョイ 5fad-F3mB)
2023/12/01(金) 02:30:56.67ID:oKQshtme0 >>145
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
> a[]のアドレスが欲しければ&aと書くだけでいいのに
俺はそっちのほうがややこしいと思うけどな
むしろ*(a+10) を [] で表現するなら *a[10] みたいな書き方になるほうが、理解する上ではややこしくなかったかなとは思うけど(使う上では不便)
[] って箱(マス)に見えるし、まあ直接箱の中身を示すものなのだなって覚えたけど
155デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:52:03.14ID:sCbOzpGc0 誰が誰なのかよく分からんけど、キッズが来て荒れた、という話ですか
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
インデックスアドレッシングを [ ] 記号に当てただけと思うけど、そんなに難しいかね
156デフォルトの名無しさん (ワッチョイ a76b-onFz)
2023/12/01(金) 05:55:20.08ID:sCbOzpGc0 型の話かと思ってたら、いつの間にか 入門者がポインタを理解できない話 になった印象
157はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 14:51:35.53ID:U5xjJXbM0 >>145
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
配列 a に &a としたときに得られるのは配列を指すポインタであって配列の先頭要素を指すポインタではない。
(型が違う。 アドレスを数値として見たら同じはずだけど。)
多次元配列にアクセスするとき (添字演算子を重ねて適用するとき) に仕様の通りに解釈していくと配列と先頭要素が都合よく切り替わって最終的にポインタ演算になるのが実に上手いこと出来てる。
配列の要素にアクセスするときの記法を現状のような形にするという前提でならなんだかんだでよく出来ている。
配列に & を付けたら配列を指すポインタになるというのは例外的ではない普通の挙動だからそこに別の意味を割り当てるならそれもやっぱり変則的なややこしい挙動ってことになってしまうよ。
158デフォルトの名無しさん (ワッチョイ 7f6a-l0Ve)
2023/12/01(金) 19:03:26.87ID:Ga+233FE0159はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-d+hN)
2023/12/01(金) 19:23:36.92ID:U5xjJXbM0 >>158
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
プログラマが直接的に書く機会はあんまりないだろうけど、
暗黙には頻繁に表れていてこのルールがないと上手いこと機能しないって話。
#include <stdio.h>
int main(void) {
int foo[2][3] = {
{1, 2, 3},
{4, 5, 6}};
printf("%d\n", foo[1][2]); // ふたつの座標みたいに見えるけど
// 式を各段階に分解すると……
int(*bar)[3] = foo; // 配列を指すポインタは出てきてる!
int *baz = bar[1];
int qux = baz[2];
printf("%d\n", qux);
}
160デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 07:30:58.43ID:72+QzLj/0 c言語初心者です
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
質問させてください
FILE *fpという宣言の「FILE」にどういった役割があるのでしょうか
*fpは関数によってどこを読み書きするかを指定するためにアドレスを格納することは分かるのですが
それならばint型のポインタで良いような気もします
プログラムを書く上でどうでもいい内容なのですが教えていただければ今日の寝付きが良くなる気がします
161デフォルトの名無しさん (ワッチョイ eaad-snvD)
2023/12/05(火) 07:53:15.80ID:kkEdYaZP0 >>160
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
stdio.h の中身を見れば FILE がどう宣言されているか分かるのでは?
162デフォルトの名無しさん (スフッ Sd0a-Oc+E)
2023/12/05(火) 08:16:33.53ID:64vzQPx0d >>160 FILE構造体っていうことだけは、どの本にも書いてある。
163デフォルトの名無しさん (ワッチョイ 66d6-8IwF)
2023/12/05(火) 08:26:33.63ID:Sjl8/rh40 実際UNIXのfile descriptorはintでWindowsのファイルハンドルHANDLEはvoid*だ。
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
こいつらはシステムコールによってカーネルモードで操作されるから中身が完全に見えないようになってる
それとは違って標準Cライブラリはユーザモードで動作するから
処理系依存で中身を操作してもいいように作ったのかもしれない
164デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 08:33:57.88ID:GHHZLCc/d165デフォルトの名無しさん (ワッチョイ 65d3-WD8q)
2023/12/05(火) 09:00:17.71ID:72+QzLj/0 >>160です
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
普通の構造体の宣言とは異なり要素の記述はありませんが
「FILE」とは「ファイル構造体を使うよ」と宣言しているという意味で
そうしてstdio.h上のFILE構造体の要素に開いたファイルの情報が代入されていくということでしょうか?
「FILE」を記述せずにfopenで開こうとした場合構造体メンバのptrに代入されている数値が使えないのでfopenから戻り値が受け取れず正しく*fpに座標が代入されない
みたいな
そして開くだけならfopenでも開けてしまうとか
166はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 10:08:56.47ID:z5PiblaY0 言語仕様的に見れば FILE はストリームを制御するのに十分な情報が入ったオブジェクト型であることと、
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
アドレス (FILE 型のオブジェクトがある場所) に意味がある場合もあるから
オブジェクトをコピーして機能するとは限らないという程度のことしか書いてない。
FILE にどのような情報が格納されているのかといったことや
詳細な仕組みはホスト環境の事情に合わせて処理系の裁量で決めてよい部分なので、
具体的にどうなっているのかは各実行環境・開発環境ごとに違う。
特に環境依存の細かい部分に立ち入って制御をしたい事情があるのでない限りは
fopen が「なんらかの方法」で FILE 構造体を構築してそのアドレスを返すものであるということだけ知っていれば
普通のプログラマにとって十分なように出来ている。
167デフォルトの名無しさん (ワッチョイ 8ac1-Vvnv)
2023/12/05(火) 10:36:22.34ID:NYBtRI3Y0 >>165
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
3行目から4行目の理解で大体あってるよ
それ以降は何言ってんのか分かんねーから全部アタマの中から破棄していいよ
正確にはFILEってのは抽象データ型であんたは構造体って言ってるけど構造体かどうかは分からんし使う側は知る必要もない
提供者がわざわざ抽象型にして使い手側の負荷を下げてくれるとこを中身がどうとか役割がどうとかさぐんのは筋が悪いんだよ
使えって言われてんだから何も考えずにだまって使えばいいよ
168デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/05(火) 11:08:08.12ID:h96fo3nj0 FILE構造体ってOS毎に変わるし、コンパイラ実装でも又変わってた様な気がする
169デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 12:35:58.10ID:4VzMioa/0 FILE*経由だとバッファリングされるから、バッファーのポインタとそこに含まれてるデータサイズも含んでいるだろう
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
そもそもファイルのシーク位置も含まれてる
まとめると
・ファイルディスクリプターやファイルハンドル
・シーク位置
・バッファー(ポインタ、サイズ、含まれてるデータサイズ)
となるかね
170デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/05(火) 15:39:55.92ID:QJai9ytva >>160
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
void *hoge = (void *)fopen("hoge", "wb");
fprintf((FILE *)hoge, "hoge\n");
fclose((FILE *)hoge);
171デフォルトの名無しさん (ワッチョイ 71cf-L1V1)
2023/12/05(火) 17:31:14.53ID:4VzMioa/0 FILE*互換の自前のストリームを実装できれば便利なんだがなぁ
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
継承が無いから、構造体に自前の関数をセットして、何らかの登録関数に渡す感じになるだろう
172デフォルトの名無しさん (JP 0Hf9-8IwF)
2023/12/05(火) 17:40:17.96ID:oSX0a7FoH fopencookieとかfunopen
173はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/05(火) 17:48:30.74ID:z5PiblaY0 パイプのインターフェイスをストリームとして開くことが出来るから
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
適当なスレッドを開いてパイプの受け取り口で受け取った情報を好きなように加工するようにすれば、
パイプに書込む側ではストリームに書き込んだらいい感じに処理してくれるように見える。
というのを Windows でやっているのをどっかで見た。
174デフォルトの名無しさん (スッップ Sd0a-Cw2Y)
2023/12/05(火) 18:11:37.45ID:GHHZLCc/d175デフォルトの名無しさん (ワッチョイ 5e5f-Vvnv)
2023/12/05(火) 23:44:52.07ID:9c748LJ40 ソケットディスクリプタってファイルポインタに転生できる?
176デフォルトの名無しさん (ワッチョイ 8a26-yDrh)
2023/12/05(火) 23:48:43.88ID:4UYj/sQ80 >>175
fdopen
fdopen
177デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/06(水) 08:34:18.09ID:hjosWl9s0178デフォルトの名無しさん (スフッ Sd0a-nvfk)
2023/12/06(水) 12:07:25.67ID:dR0trs3yd 対策このままなら再発しそうね
https://japan.zdnet.com/article/35212258/4/
https://japan.zdnet.com/article/35212258/4/
179デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/06(水) 16:09:22.53ID:JLoh059d0 仕事なくなったら困る人が大勢いるし
180デフォルトの名無しさん (ワッチョイ 7d01-tBUZ)
2023/12/06(水) 20:24:47.29ID:tBrgYtLt0 free(NULL) は許されるのに
fclose(NULL) は許されないんよな
fclose(NULL) は許されないんよな
181デフォルトの名無しさん (アウアウウー Sa21-VttM)
2023/12/06(水) 21:05:20.14ID:gHtrZlY5a >>180
さらにfflush(NULL)は許されるという一貫性の無さ
さらにfflush(NULL)は許されるという一貫性の無さ
182はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/06(水) 21:19:13.20ID:+44Bjs460 fflush の場合は全てのストリームを対象とするという特別なフラグとして NULL を活用しているので無効なポインタとしての NULL とは事情が違う気がするね。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
それにしたってNULL を多義的に使っているという意味では一貫性はないけど。
183デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/06(水) 21:23:39.94ID:bAVe0RWP0 free(NULL)は、おバカなマの為に特別に許容したんだろ
184デフォルトの名無しさん (ワッチョイ 65a4-WD8q)
2023/12/07(木) 02:17:45.58ID:NYiehhGh0 以前ネットでおすすめされていた「苦しんで学ぶc言語」の内容をしっかり理解する段階まできたのですが、次は何をすれば良いのでしょう。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
猫でも分かるプログラミングも読んでみたのですが仕様が古すぎてトレースできないのと、私には作者さんの文章の作りが合わず困っています。
まずは簡単なソフトを作りながら学べればと思います。
入門書の次に読めるような本と、そこからアプリケーション開発のイロハが分かる本やサイトを教えていただけないでしょうか。
185デフォルトの名無しさん (ワッチョイ ea79-4utE)
2023/12/07(木) 07:17:00.47ID:Y9iRVwaI0 ↑みたいなのって目的ないのかね
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
今後C言語で特に何かやりたい事がないなら別に何もする必要ないよ
186はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656a-1gjz)
2023/12/07(木) 08:27:05.09ID:wi0prF2i0 Cで現実的なアプリケーションを作るならホスト環境 (OS など) の事情は無視できないし、具体的な目標なく道筋は決まらないと私も思う。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
何の情報もない他人に何かを勧めるというのはしづらい。
目標があるならその分野の既存のコードを「読む」という体験はためになるかもしれない。
実際のコードを見て意味がわからない部分があれば学習が必要な部分だというとっかかりになる。
187デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/07(木) 09:28:19.84ID:++8K4NmJ0 >>184
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
> 「苦しんで学ぶc言語」
というのは、これ↓ ?
https://9cguide.appspot.com/index.html
> 苦しんで覚えるC言語
であれば文法解説のようなので、ファイル操作をしてはどう?
cat コマンドを作るとか。
188デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 10:04:58.60ID:NYiehhGh0189デフォルトの名無しさん (ラクッペペ MM3e-8Sbt)
2023/12/07(木) 10:23:42.82ID:aHfAXzyRM 業務効率の向上が目的ならC言語は回り道すぎる
他の言語選んだ方がいい気がする
他の言語選んだ方がいい気がする
190デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 10:31:24.83ID:HPax2zCP0 ファイル操作の課題出してあげようか
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
指定した二つのDirにあるファイルを同期させる
単にコピーするのではなく、タイムスタンプの新しいものだけをコピーする
新しいSubdirできていたら、中味があればDirごとコピーする
とりあえずは、新しく作られてファイルの同期まで、
削除については考慮しなくて良い
191デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 10:39:50.34ID:3PWWuEZS0192デフォルトの名無しさん (スプッッ Sdea-GtvU)
2023/12/07(木) 11:21:46.78ID:6u4iKMo7d C言語のスレッドで言う事じゃないがC言語以外の生産性の高い言語を学んだほうがよさそう
193デフォルトの名無しさん (ワッチョイ 71cf-Gt6m)
2023/12/07(木) 11:56:53.00ID:QzDrEJVi0 >>184
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
CはOSのAPIを直接叩けることがメリットでもあるので、Linuxのプログラミング本を読んでコード書いてみるのが一番良いだろう
マルチプロセス、マルチスレッド、ソケットとか覚えるべき事は沢山ある
Cでやれば根本から理解出来る
194はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-1gjz)
2023/12/07(木) 12:04:11.70ID:FWY3NSUg0 (事務作業などの?) 業務効率化が目的なら Power Automate Desktop の活用を考えた方がいいと思う。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
効率化の最初の段階は解決すべき問題を見つけることで、これをきちんと一度で洗い出すのは大抵の場合に出来ない。
雑に作って運用しながら改善するという手順をとるのがのぞましいが、 C で書くとそういう柔軟な体制がとりづらい。
195デフォルトの名無しさん (ワッチョイ 9a2b-ntmn)
2023/12/07(木) 13:30:05.55ID:zYUoekf60 「なにを作りたいのかが大事」ってのは良く分かるんだけど、普通の人が作りたいものって大抵Cじゃない方が…ってなっちゃうんだよな
196デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 13:42:19.21ID:NYiehhGh0 >>90
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
そういった事もできるんですねー
>>191
取り組みたいのは山々なのですがuiの作り方からわからないので入手できるバーションで解説されている書籍が欲しいところです。
>>192
基礎を大切にしたいのでcをはじめのうちは使っていきたいと考えています。
>>193
仰る通り根本を理解できればと思います。Linux本ですね。可能であれば簡単なものでおすすめを添えていただけないでしょうか。
>>194
グラフィック系のソフトを使う上で不便なところを楽したい、と言いますか
とにかく画像表示や文字列表示から進めていきたいと考えています。
前述の通り基礎を理解したいので可能であればcで作成したいのです。
197デフォルトの名無しさん (ワッチョイ 3514-I4o8)
2023/12/07(木) 13:42:44.77ID:P4JhXVL60 WindowsアプリならCじゃくて、せめてC++にしておけ
198デフォルトの名無しさん (ワッチョイ 6aa0-0M9k)
2023/12/07(木) 13:43:24.10ID:n9+uyfFo0 楽したい奴にはCは向かない
199デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/07(木) 14:18:01.05ID:wNl2TimYa C++は変な癖がつく
Cの方が絶対良い
Cの方が絶対良い
200デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:23:59.73ID:3PWWuEZS0 Cで全部書いてると大変だと思うよ
機能全部使わんでも良いからC++の方が現実的だよ
機能全部使わんでも良いからC++の方が現実的だよ
201デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/07(木) 15:31:37.34ID:HPax2zCP0 大変かどうかは、何を作るかによる
202デフォルトの名無しさん (ワッチョイ b501-sZSb)
2023/12/07(木) 15:35:13.86ID:3PWWuEZS0203デフォルトの名無しさん (ワッチョイ 71cf-Gt6m)
2023/12/07(木) 16:19:14.82ID:QzDrEJVi0 >>196
自分はUNIX Cプログラミング(いわゆるライオン本)で勉強して、めちゃくちゃ為になったけど、さすがにこれは古すぎる
詳解UNIXプログラミング 第3版は間違いのない名著
ふつうのLinuxプログラミング 第2版はLinux向けだし初心者向け
Cで仕事をするようにはならないかもだけど、「ふつうの~」を理解出来て自分のものにすることがCを学ぶ意義だな
自分はUNIX Cプログラミング(いわゆるライオン本)で勉強して、めちゃくちゃ為になったけど、さすがにこれは古すぎる
詳解UNIXプログラミング 第3版は間違いのない名著
ふつうのLinuxプログラミング 第2版はLinux向けだし初心者向け
Cで仕事をするようにはならないかもだけど、「ふつうの~」を理解出来て自分のものにすることがCを学ぶ意義だな
204デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/07(木) 16:23:44.20ID:5AmCTrxW0 >グラフィック系のソフトを使う上で不便なところを楽したい
ソフト側でスクリプト等がサポートされてなければ
できることは連続するショートカットを 1プッシュでまとめて出す
キーロガー&再生系とか Joy2Key みたいなキーコード送出系ぐらいしか思い浮かばん
ソフト側でスクリプト等がサポートされてなければ
できることは連続するショートカットを 1プッシュでまとめて出す
キーロガー&再生系とか Joy2Key みたいなキーコード送出系ぐらいしか思い浮かばん
205はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/07(木) 17:03:32.49ID:FWY3NSUg0 >>196
具体的に対象になってるソフトの名前は言える?
モダンな設計の Windows 用ソフトが外部から制御するために公開するインターフェイスは
Component Object Model の技術をベースにしていることが多くて、
高度な開発環境の補助を得ながら使う分には便利なんだが
C から使おうとするとすごく面倒くさい。 (出来なくはないけど。)
ソフトが外部に対してインターフェイスを公開するのではなく
制御用のスクリプト言語を内蔵している場合もあるので
C でのプログラミングに詳しくなってもあまり役に立たないこともある。
もしも外部に対してインターフェイスを用意していないなら
ボタン操作のイベントを発生させるとかして制御する (つまりまさに人がする操作を代行させる) ということも可能だが、
それを可能にするような基礎技術というか Windows の動作モデルを理解したいのなら
「猫でもわかるWindowsプログラミング」はそれなりに有用だと思うよ。
私は書籍を読んだことは無いけどウェブ版は Windows がイベントを伝播させて操作させる構造を理解するのに十分な記述はある。
だけど、人が操作するときに Windows の中で何が起こっているのかを
初心者が根本から理解してきちんと使いこなせるまでになるハードルは割と高めなんだよ……。
Power Automate Desktop なら技術の根本を理解せずともそれが出来るようになってるし、
マイクロソフトが直接に提供していてしかも無料という神ソフトなのでオススメした次第。
UWSC とか AutoIt なんかも人気があるね。
具体的に対象になってるソフトの名前は言える?
モダンな設計の Windows 用ソフトが外部から制御するために公開するインターフェイスは
Component Object Model の技術をベースにしていることが多くて、
高度な開発環境の補助を得ながら使う分には便利なんだが
C から使おうとするとすごく面倒くさい。 (出来なくはないけど。)
ソフトが外部に対してインターフェイスを公開するのではなく
制御用のスクリプト言語を内蔵している場合もあるので
C でのプログラミングに詳しくなってもあまり役に立たないこともある。
もしも外部に対してインターフェイスを用意していないなら
ボタン操作のイベントを発生させるとかして制御する (つまりまさに人がする操作を代行させる) ということも可能だが、
それを可能にするような基礎技術というか Windows の動作モデルを理解したいのなら
「猫でもわかるWindowsプログラミング」はそれなりに有用だと思うよ。
私は書籍を読んだことは無いけどウェブ版は Windows がイベントを伝播させて操作させる構造を理解するのに十分な記述はある。
だけど、人が操作するときに Windows の中で何が起こっているのかを
初心者が根本から理解してきちんと使いこなせるまでになるハードルは割と高めなんだよ……。
Power Automate Desktop なら技術の根本を理解せずともそれが出来るようになってるし、
マイクロソフトが直接に提供していてしかも無料という神ソフトなのでオススメした次第。
UWSC とか AutoIt なんかも人気があるね。
206デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 17:15:58.47ID:ggcXWkJv0 関数のサイズというのは、関数の引数のサイズと同じと考えて良いのでしょうか?
中身に1万行使ってる関数があるとして、その1万行は関数のサイズとは全然関係ないんでしょうか?
構造体はなんとなく変数のバイト数の足し算なんだなってわかるけど、関数がピンとこないです・・・
中身に1万行使ってる関数があるとして、その1万行は関数のサイズとは全然関係ないんでしょうか?
構造体はなんとなく変数のバイト数の足し算なんだなってわかるけど、関数がピンとこないです・・・
207デフォルトの名無しさん (ワッチョイ f1bb-Gt6m)
2023/12/07(木) 17:18:59.29ID:Dmh4B19g0 プリプロセッサメタプログラミングを覚えてからc言語の開発は楽になったわ
前は同じようなデータ構造でたくさんモジュール作ってたからな
前は同じようなデータ構造でたくさんモジュール作ってたからな
208はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/07(木) 17:34:07.95ID:FWY3NSUg0 >>206
関数をデータとして扱うことはないので「大きさ」は定義されない。
C の言語仕様的には「関数はオブジェクトではない」という扱い。
関数に対して呼び出し以外の操作をする方法はない。
関数ポインタで関数の場所を指すということは出来るが、
型システム的にちょっと特殊な扱いになっていて関数ポインタ経由で値を取り出したりも出来ない。
もちろん実際にはなんらかの形でメモリ上には存在するし、
長いプログラムは大きい可能性が高いけど。
実際にどうなってるのかは生成された機械語を見ればいいんでね。
関数をデータとして扱うことはないので「大きさ」は定義されない。
C の言語仕様的には「関数はオブジェクトではない」という扱い。
関数に対して呼び出し以外の操作をする方法はない。
関数ポインタで関数の場所を指すということは出来るが、
型システム的にちょっと特殊な扱いになっていて関数ポインタ経由で値を取り出したりも出来ない。
もちろん実際にはなんらかの形でメモリ上には存在するし、
長いプログラムは大きい可能性が高いけど。
実際にどうなってるのかは生成された機械語を見ればいいんでね。
209デフォルトの名無しさん (ワッチョイ 915b-rn9t)
2023/12/07(木) 17:41:37.50ID:VEE9aIzl0210デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 17:41:59.31ID:ggcXWkJv0 >>208
ポインタのアクセス条件でメモリのサイズ・型が明確になっていること
とあったので、関数ポインタもサイズや型が明確でないといけないなら
ちゃんとわかっとかないといけないと思ったのですが、関数の扱いはわかってる人から見ても特殊なんですね
ありがとうございます
ポインタのアクセス条件でメモリのサイズ・型が明確になっていること
とあったので、関数ポインタもサイズや型が明確でないといけないなら
ちゃんとわかっとかないといけないと思ったのですが、関数の扱いはわかってる人から見ても特殊なんですね
ありがとうございます
211デフォルトの名無しさん (ワッチョイ 1ec3-yDrh)
2023/12/07(木) 18:04:20.91ID:Kvlx+aNw0 >>206
あなたはどういう文脈で「関数のサイズ」が気になった・話題になったの?プアな組み込みとか?
俺は「関数のサイズ」が気になった・話題になった覚えがない
まぁコンパイル後のコード量かなぁ、関数の行数は大きく関係する
引数はスタックに積むけど「関数のサイズ」とは言わない気がする
あなたはどういう文脈で「関数のサイズ」が気になった・話題になったの?プアな組み込みとか?
俺は「関数のサイズ」が気になった・話題になった覚えがない
まぁコンパイル後のコード量かなぁ、関数の行数は大きく関係する
引数はスタックに積むけど「関数のサイズ」とは言わない気がする
212デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/07(木) 18:19:55.87ID:5AmCTrxW0 サイズ云々は
インクリメントしたときにどんだけ(何バイト)進むのかが確定してる型でないとポインタにならない
→ じゃ関数ポインタって 関数のサイズ(≒ コンパイル後の機械語化されたバイナリのサイズ) を知ってるのか?
こういう思考の流れかな?
インクリメントしたときにどんだけ(何バイト)進むのかが確定してる型でないとポインタにならない
→ じゃ関数ポインタって 関数のサイズ(≒ コンパイル後の機械語化されたバイナリのサイズ) を知ってるのか?
こういう思考の流れかな?
213デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 19:14:37.61ID:ggcXWkJv0214デフォルトの名無しさん (ワッチョイ 8a71-yDrh)
2023/12/07(木) 19:46:05.37ID:Avn/NPEq0 >>213
その状況で必要になるのは関数のサイズじゃなくて関数ポインタのサイズや
それは他のポインタと同じ、64bitPCなら8バイト
仮定の話として、もし「関数ポインタの配列」ではなく「関数の配列」が作成できるような言語仕様にするなら、関数のサイズも決めないといけなかっただろうね
その状況で必要になるのは関数のサイズじゃなくて関数ポインタのサイズや
それは他のポインタと同じ、64bitPCなら8バイト
仮定の話として、もし「関数ポインタの配列」ではなく「関数の配列」が作成できるような言語仕様にするなら、関数のサイズも決めないといけなかっただろうね
215デフォルトの名無しさん (ワッチョイ c55f-tBUZ)
2023/12/07(木) 19:58:53.01ID:ggcXWkJv0 >>214
言われてみたらたしかにそうですねなんでポインタなのに普通の変数のように考えてしまってたんだろう・・・
言われてみたらたしかにそうですねなんでポインタなのに普通の変数のように考えてしまってたんだろう・・・
216デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/07(木) 21:12:50.21ID:fQltjmnX0 void*使えるやん
217デフォルトの名無しさん (ワッチョイ 65ff-WD8q)
2023/12/07(木) 21:34:16.53ID:NYiehhGh0218はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 656b-1gjz)
2023/12/08(金) 03:48:38.29ID:tzfGEsy80 >>216
関数ポインタは void* に格納可能であると保証してないし、関数ポインタがオブジェクトを指すポインタより大きかったり表現が異なっていたりする環境はある。
出来る環境でなら使うのが悪いわけではないけど移植性は犠牲になる。
関数ポインタは void* に格納可能であると保証してないし、関数ポインタがオブジェクトを指すポインタより大きかったり表現が異なっていたりする環境はある。
出来る環境でなら使うのが悪いわけではないけど移植性は犠牲になる。
219デフォルトの名無しさん (ワッチョイ b501-8qzv)
2023/12/08(金) 06:53:57.90ID:Mdse7dEX0220デフォルトの名無しさん (ワッチョイ 1e6d-ja4y)
2023/12/08(金) 07:01:37.37ID:g0YSKcXt0 near ポインタモデル?だったかの
変数のアドレッシングサイズと
プログラムカウンタのアドレッシングサイズが違うやつ
変数のアドレッシングサイズと
プログラムカウンタのアドレッシングサイズが違うやつ
221デフォルトの名無しさん (ラクッペペ MM3e-VttM)
2023/12/08(金) 07:38:56.35ID:qsjd2ZYcM ミディアムモデルとかコンパクトモデルとか
まぁ過去の話だわな
まぁ過去の話だわな
222デフォルトの名無しさん (スップ Sdea-b4p5)
2023/12/08(金) 07:57:53.16ID:m+qJyEe4d 関数のサイズは関数のポインタをアドレス順にソートすれば求められる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
そのサイズ分を実行可能領域にコピーすれば当然実行もできるよ
dllインジェクションとかでたまに使われる
223デフォルトの名無しさん (スップ Sd0a-Cw2Y)
2023/12/08(金) 08:01:58.55ID:ClTGg8d6d224はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 09:53:49.26ID:B2zBKDAb0 >>217
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
マイクロソフトが出している公式のチュートリアルは C++ が基礎だけど
考え方としては C でも同じなのでそのへんは適当に読み替えながら……
https://learn.microsoft.com/ja-jp/windows/win32/
Win32 API は C で使ってもそんなに不便ではないように出来てる。
特に最も基礎のこのへんの例示のコードは (C++ とは書いてあるが) たぶん C としてコンパイルさせても通る。
https://learn.microsoft.com/ja-jp/windows/win32/learnwin32/your-first-windows-program
必要な知識の分量は初心者が想像するよりずっと多いと思う。
分かりやすいドキュメントがあったとしても (そして無いこともしばしばある!) 分量は減らないので
分量というハードルをクリアするのは単純に学習量しかないし、
学習量をこなすには時間をかけるしかしょうがない。
やりたいことを自由に出来るようになるまで何も生産しない時間 (業務なら人件費に換算されるだろう) をかける余裕があるの?
というところを不安に思っちゃうわけだよ。
ここは C スレだから C プログラミングを支援したい気持ちはあるがそれがしんどい場合も多いってことも知ってる。
個人事業なら趣味と兼ねるのもアリかもしんないけど。
225デフォルトの名無しさん (ワッチョイ 6646-wNAC)
2023/12/08(金) 10:13:43.24ID:20YRNN5F0 >>224
Cコンパイラに、C++ -> C トランスレート機能あるの?
Cコンパイラに、C++ -> C トランスレート機能あるの?
226デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:26:10.76ID:vLixVDpZ0 API はほとんど C インターフェースで
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
C++をベターCとして利用してて C++のクラスの機構はほぼ使ってない
(GDI+ とかAPIがはなっから C++ インターフェースの奴は別)
227デフォルトの名無しさん (ワッチョイ 9140-JrwL)
2023/12/08(金) 10:34:54.49ID:faKtyhh20 >>218
ねえよ
ねえよ
228デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 10:50:23.47ID:k3Bpg+TDa ぶっちゃけGDI+もCから使えるけどね
229デフォルトの名無しさん (ワッチョイ 66ab-XaJC)
2023/12/08(金) 10:53:01.67ID:vLixVDpZ0 >>228
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
あれ Cインターフェース居るのか 最終的にはCOMになってるんやっけ?
230デフォルトの名無しさん (ワッチョイ b501-8qzv)
2023/12/08(金) 11:03:20.25ID:Mdse7dEX0 >>220-221
なんかそういうのあったかも
なんかそういうのあったかも
231デフォルトの名無しさん (ワッチョイ 1163-8qzv)
2023/12/08(金) 11:04:41.36ID:VEgZ7oNC0 あれはPascalの呼出ではなかったかな
232はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 11:27:29.89ID:B2zBKDAb0233デフォルトの名無しさん (ワッチョイ 6548-WD8q)
2023/12/08(金) 12:03:08.97ID:7hcazM9a0 >>224
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
兼任ですが個人事業主でお金と時間はそれなりに自由に使えます。
3〜5ヶ月くらいはまとまった時間を取ることも可能です。
公式チュートリアルは参考にはなりますが読みやすいかと言われると微妙ですね。
知識はもちろん身につけたいのですが、そこまでの道筋は他人のコードを読む方がやはり良いのでしょうか?
書籍やサイトなどでアプリの形になるまでのチュートリアルなどは無いのでしょうか。
234デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 12:17:34.25ID:k3Bpg+TDa Win32APIというよりそれ以前の
C言語の知識が足りてないんじゃないのかな
C言語の知識が足りてないんじゃないのかな
235はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 2a3e-By03)
2023/12/08(金) 13:05:38.60ID:B2zBKDAb0 >>233
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
何を学べば良いかすらわからないときのとっかかりとして
他人のコードを読む (何がわかってないかはわかる) ことを勧めたまでで、
良い資料があるならそれを読むにこしたことはないよ。
良い資料がないことも多いという現実はあるけど。
私は公式チュートリアルは良いほうだと思う。
知らないことを書いてあるんだからある程度は読みづらいこともあるのは当たり前のことで、
どれを読んだって似たようなもんじゃないかな。
専門的な内容をスラスラ読めるほうがおかしいでしょ。
236デフォルトの名無しさん (ワッチョイ 8a80-yDrh)
2023/12/08(金) 13:11:55.82ID:0BufPgxy0 さてはオメー
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
ふらっとC#スレで他人のコードの読み方とか延々聞いてたヤツだな?
237デフォルトの名無しさん (アウアウウー Sa21-/D3x)
2023/12/08(金) 13:15:41.58ID:o54AonyOa >>206
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
関数もメモリにロードされるのわからず?
関数はただのマシンコードなんだからここから始まりますよ、というラベルがついてるだけだぞ
そして呼ばれた時はそこへジャンプするだけ
関数ポインタはそのマシンコードのラベルのアドレスを保持しているだけ
ポインタ以前にコンピュータの仕組みからやった方が良さそう
プログラム格納方式とか聞いたことない?
238デフォルトの名無しさん (アウアウウー Sa21-wVFe)
2023/12/08(金) 13:31:18.44ID:k3Bpg+TDa >>236
なんちゃらGPTがここでこっそり質問してたら笑う
なんちゃらGPTがここでこっそり質問してたら笑う
239デフォルトの名無しさん (ワッチョイ 66cf-tBUZ)
2023/12/08(金) 13:36:30.72ID:SLmq2FCH0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 経団連会長、日中は建設的対話を 経済3団体が高市首相と初会談も日中関係は話題に登らず… [BFU★]
- 【映画】『クレヨンしんちゃん』 中国で公開延期 対日報復、エンタメに波及 [冬月記者★]
- 日経時間外、5万円割れ 垂直落下始まる [402859164]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- ウッドデッキで調子こいてたやついたじゃん
- 🦉エッホエッホ アンパンマンは猫舌って伝えなきゃ
- えんやすー
- 中国人「昔の仇を取る」「高市は狂ってる。制裁すればいい」「高市はことの重大さを認識してない」 [931948549]
