!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 155
https://mevius.5ch.net/test/read.cgi/tech/1589120427/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
C言語なら俺に聞け 156
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
2020/09/28(月) 14:41:30.00ID:QxfbhGyV0203デフォルトの名無しさん (ワッチョイ e963-gGz3)
2020/10/25(日) 00:57:14.44ID:TZHfVi9W0 *(PBYTE*)&a =
変数aの現在の値を&で取り出し、
それをポインタ値として扱い、
そのポインタ値が指し示すところに代入する
ということじゃないかな
変数aの現在の値を&で取り出し、
それをポインタ値として扱い、
そのポインタ値が指し示すところに代入する
ということじゃないかな
204デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/25(日) 01:18:53.38ID:TWzqhGL8M (PBYTE)a みたいにキャストすると、値の解釈の変更ということになり、
代入先(左辺値)にはできなくなる。
int i;
(float)i = 1.1;
って意味あると思う?
代入先(左辺値)にはできなくなる。
int i;
(float)i = 1.1;
って意味あると思う?
205デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 01:33:16.78ID:5nJTYzvV0 あ〜〜 なるほど
floatなどの小数点以下を扱う型は以下のようにdが1になる特別な仕様があるから
そのためにエラーになるようになってるんですかね。
float c = 1.5f;
int d = (int)c;
int e = *(int*)&c;
この場合、dは1になるけど、eは1069547520になるから、
エラーになる現象はこれと近いのかな
この解釈であってるのだろうか
floatなどの小数点以下を扱う型は以下のようにdが1になる特別な仕様があるから
そのためにエラーになるようになってるんですかね。
float c = 1.5f;
int d = (int)c;
int e = *(int*)&c;
この場合、dは1になるけど、eは1069547520になるから、
エラーになる現象はこれと近いのかな
この解釈であってるのだろうか
206デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/25(日) 01:35:55.99ID:TWzqhGL8M それそれ。
それ追記しようとしてた。
それ追記しようとしてた。
207デフォルトの名無しさん (ワッチョイ 2101-50og)
2020/10/25(日) 01:54:40.07ID:5nJTYzvV0 とはいえ
int i;
(float)i = 1.1;
これはiを一時的にfloatにキャストしてるだけだから、エラーにせずにiは1として動作させるとこはできなかったんだろうか
int i;
(float)i = 1.1;
これはiを一時的にfloatにキャストしてるだけだから、エラーにせずにiは1として動作させるとこはできなかったんだろうか
208デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 02:21:39.27ID:COZe3KfC0209デフォルトの名無しさん (ワッチョイ 2101-50og)
2020/10/25(日) 02:57:11.72ID:5nJTYzvV0 >>208
そもそもなぜコンパイラがこれをエラーと捉えるのかというのがわからないと言う意味で言っておりました。
そもそもなぜコンパイラがこれをエラーと捉えるのかというのがわからないと言う意味で言っておりました。
210デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 03:00:35.23ID:COZe3KfC0211デフォルトの名無しさん (ワッチョイ c6e9-tMQb)
2020/10/25(日) 03:18:58.54ID:COZe3KfC0212デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/25(日) 03:28:10.91ID:UGl+6vH40 >>202
キャストの結果は常に右辺値
右辺値を代入してるから右辺値には代入出来ないというエラーが出る
ポインタのデリファレンスの結果は左辺値なので代入も問題ない
あとエスパーするにPBYTEってuint8_t (unsigned char)なんだろうけど(それ以外の場合はデリファレンスの結果が未定義),
> *(PBYTE*)&a += 5;
はint型の先頭バイトを書き換えたいという意図で,
> (PBYTE)a += 5;
こっちはメモリのどの位置を書き換えたいのか自明じゃないからやってること自体全く異なる
キャストの結果は常に右辺値
右辺値を代入してるから右辺値には代入出来ないというエラーが出る
ポインタのデリファレンスの結果は左辺値なので代入も問題ない
あとエスパーするにPBYTEってuint8_t (unsigned char)なんだろうけど(それ以外の場合はデリファレンスの結果が未定義),
> *(PBYTE*)&a += 5;
はint型の先頭バイトを書き換えたいという意図で,
> (PBYTE)a += 5;
こっちはメモリのどの位置を書き換えたいのか自明じゃないからやってること自体全く異なる
213デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/25(日) 08:17:29.39ID:B8Qi0Gue0 キャスト式の結果は左辺値ではない
間接演算式の結果は左辺値となる
これだけのことだろ
間接演算式の結果は左辺値となる
これだけのことだろ
214はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-3XbD)
2020/10/25(日) 09:56:54.64ID:63196X630 gcc3 の頃までは cast-as-lvalue が有ったけど 4 になるときに廃止された。
古いコードでこの機能をあてにしているものはあるかもね。
古いコードでこの機能をあてにしているものはあるかもね。
215デフォルトの名無しさん (ワッチョイ fd5f-Naer)
2020/10/25(日) 13:18:04.05ID:FzqccguI0 >>197
(PBYTE)*a += 5;
(PBYTE)*a += 5;
216デフォルトの名無しさん (ワッチョイ fd5f-Naer)
2020/10/25(日) 13:19:58.42ID:FzqccguI0 >>202
答えだけ言うとやってることが同じではない
答えだけ言うとやってることが同じではない
217デフォルトの名無しさん (ワッチョイ 2101-LA9s)
2020/10/25(日) 16:44:12.86ID:5nJTYzvV0218デフォルトの名無しさん (ワッチョイ fd5f-YvdE)
2020/10/25(日) 16:58:46.13ID:FzqccguI0 (PBYTE *) って (BYTE **) のことか
それなら同じじゃないな
っていうか「左辺値が変更出来ない型になってる」
これでこの話は終わり
それなら同じじゃないな
っていうか「左辺値が変更出来ない型になってる」
これでこの話は終わり
219デフォルトの名無しさん (ワッチョイ 6252-OGcW)
2020/10/25(日) 17:29:39.65ID:0u/0rMBT0 それなら「左辺値」ではなく「左辺」だろう
220はちみつ餃子 ◆8X2XSCHEME (ワッチョイ c63e-3XbD)
2020/10/25(日) 18:23:36.88ID:63196X630 >>217
型とは独立して (一部関係もあるが) lvalue (左辺値) と rvalue (右辺値) という概念があるってのは理解できてる?
たとえば
int x=5;
x = 2;
と書いたら OK だけど
5 = 2;
と書いたらもちろん NG だというのはわかるよね。
変数は評価したら値が出てくるけどそれとは別に場所としての性質も持ってる。
場所と値としての性質を併せ持っているのが lvalue なんだ。
で、キャスト演算子を適用するというのは取り出した値に対して型変換することになるので、
型変換した結果は場所としての性質が失われてしまう。
つまり lvalue ではなく rvalue になってしまってこれは代入先としては有効ではない。
---- 余談 ----
実際には代入先は lvalue の中でも特に modifiable lvalue (変更可能な左辺値) である必要があって
そのあたりの詳細は 6.3.2.1 あたりに記述がある。
http://kikakurui.com/x3/X3010-2003-01.html#page38-div
型とは独立して (一部関係もあるが) lvalue (左辺値) と rvalue (右辺値) という概念があるってのは理解できてる?
たとえば
int x=5;
x = 2;
と書いたら OK だけど
5 = 2;
と書いたらもちろん NG だというのはわかるよね。
変数は評価したら値が出てくるけどそれとは別に場所としての性質も持ってる。
場所と値としての性質を併せ持っているのが lvalue なんだ。
で、キャスト演算子を適用するというのは取り出した値に対して型変換することになるので、
型変換した結果は場所としての性質が失われてしまう。
つまり lvalue ではなく rvalue になってしまってこれは代入先としては有効ではない。
---- 余談 ----
実際には代入先は lvalue の中でも特に modifiable lvalue (変更可能な左辺値) である必要があって
そのあたりの詳細は 6.3.2.1 あたりに記述がある。
http://kikakurui.com/x3/X3010-2003-01.html#page38-div
221デフォルトの名無しさん (ワッチョイ 82ad-EeCs)
2020/10/26(月) 03:47:15.23ID:zDyo5E1K0 >>191
出力する端末が漢字を出すような端末で、尚且つその端末で漢字とされるコードを引き渡すのであれば出る。
しかしメジャーな文字コード体系で1バイトだけで漢字を表すようなものはなく、そういった端末も(おそらく自作しない限りは)ないだろうから putc() 1回だけで漢字が出ることはまずないと思う。
出力する端末が漢字を出すような端末で、尚且つその端末で漢字とされるコードを引き渡すのであれば出る。
しかしメジャーな文字コード体系で1バイトだけで漢字を表すようなものはなく、そういった端末も(おそらく自作しない限りは)ないだろうから putc() 1回だけで漢字が出ることはまずないと思う。
222デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 07:27:20.32ID:ddH/1NYY0223デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/26(月) 09:07:00.12ID:ePNtOm9AM224デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 09:39:14.29ID:ddH/1NYY0 >>223
ん? 俺は、おまえさんに恥をかかせたのか? そういう意図はなかったが
ん? 俺は、おまえさんに恥をかかせたのか? そういう意図はなかったが
225デフォルトの名無しさん (ブーイモ MM76-mN35)
2020/10/26(月) 10:11:22.50ID:ePNtOm9AM >>224
最初の質問が
*(PBYTE*)&a += 5;
(PBYTE)a += 5;
の違いなのに、
(PBYTE)*a += 5;
を解説するというトンチンカンで質問者を困らす回答見せられたら、
質問者に申し訳ないし同じ回答者としてこっちが恥ずかしくなるわ
最初の質問が
*(PBYTE*)&a += 5;
(PBYTE)a += 5;
の違いなのに、
(PBYTE)*a += 5;
を解説するというトンチンカンで質問者を困らす回答見せられたら、
質問者に申し訳ないし同じ回答者としてこっちが恥ずかしくなるわ
226デフォルトの名無しさん (ワッチョイ 65b7-tMQb)
2020/10/26(月) 11:15:20.28ID:ddH/1NYY0 俺は別に回答なんかしてねえよ
> ポインタが指す値に5を加算
これは間違いだよと指摘しただけだ
俺と217の対話に横レスしてきて勝手に恥ずかしいとか言ってる恥ずかしいやつに用はない
> ポインタが指す値に5を加算
これは間違いだよと指摘しただけだ
俺と217の対話に横レスしてきて勝手に恥ずかしいとか言ってる恥ずかしいやつに用はない
227デフォルトの名無しさん (ワイーワ2 FFca-YvdE)
2020/10/26(月) 15:09:18.69ID:EltRWJ/HF int a = 123;
int *p = &a;
unsigned c = (unsigned long)p;
みたいにすると怒られるので
unsigned c = *(unsigned long *)&p;
みたいに参照すると ok だったりするけど
本来は参照するだけだったコードが
いつの間にか事情を知らない人によって
*(unsigned long *)&p += 5;
にすり替わったんじゃないかと最近思うようになった
int *p = &a;
unsigned c = (unsigned long)p;
みたいにすると怒られるので
unsigned c = *(unsigned long *)&p;
みたいに参照すると ok だったりするけど
本来は参照するだけだったコードが
いつの間にか事情を知らない人によって
*(unsigned long *)&p += 5;
にすり替わったんじゃないかと最近思うようになった
228デフォルトの名無しさん (ワッチョイ 0569-z4aL)
2020/10/26(月) 15:20:36.35ID:lJWYL04O0 ポインタ(アドレス)の距離を求めるのに ポインタ値を整数化することはあるかもしれないしエラーにはならんね
unsigned long c1 = (unsigned long)p1;
unsigned long c2 = (unsigned long)p2;
c1 - c2 のような (p1 - p2 はあくまで要素数だしね)
unsigned long c1 = (unsigned long)p1;
unsigned long c2 = (unsigned long)p2;
c1 - c2 のような (p1 - p2 はあくまで要素数だしね)
229デフォルトの名無しさん (エムゾネ FFa2-Naer)
2020/10/26(月) 15:49:43.24ID:qF0DukLxF #include <iostream>
using namespace std;
class A{public: int a; A(int b):a(b){}};
int main() {
A a(123), b(456);
A *p = &a, *q = &b;
unsigned long r = (unsigned long)p, s = (unsigned long)q;
cout << s - r << endl;
cout << (unsigned long)q - (unsigned long)p << endl;
cout << (unsigned long)&b - (unsigned long)&a << endl;
cout << (unsigned long)&q - (unsigned long)&p << endl;
return 0;
}
特に問題無いか
using namespace std;
class A{public: int a; A(int b):a(b){}};
int main() {
A a(123), b(456);
A *p = &a, *q = &b;
unsigned long r = (unsigned long)p, s = (unsigned long)q;
cout << s - r << endl;
cout << (unsigned long)q - (unsigned long)p << endl;
cout << (unsigned long)&b - (unsigned long)&a << endl;
cout << (unsigned long)&q - (unsigned long)&p << endl;
return 0;
}
特に問題無いか
230デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 20:55:35.80ID:pV+9Vnjg0231デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 20:56:38.86ID:pV+9Vnjg0 × p を
○ p の指し先を
○ p の指し先を
232デフォルトの名無しさん (ラクッペペ MMe6-4R9W)
2020/10/26(月) 21:41:34.62ID:P78swXdWM *pじゃなくてpを取り出してるからだろ
233デフォルトの名無しさん (ワッチョイ d1c7-tMQb)
2020/10/26(月) 21:55:26.21ID:ZLlt5QiZ0 pの指し先をunsignedとして抜き出しているわけではないよ
p(ポインタ)自体をunsignedに無理やり変換している
p(ポインタ)自体をunsignedに無理やり変換している
234デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 21:58:46.96ID:rHcuqZcg0235デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 22:01:39.15ID:pV+9Vnjg0 ん? ポインタの整数値化 intptr_t な意図なの?
intptr_t c = *(intptr_t *)&p; がなおさら混乱するな
intptr_t c = *(intptr_t *)&p; がなおさら混乱するな
236デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 22:08:25.93ID:rHcuqZcg0237デフォルトの名無しさん (ワッチョイ 21da-gGz3)
2020/10/26(月) 22:09:01.82ID:rHcuqZcg0 uintptr_t addr_a = (uintptr_t)&a;
_tが抜けた
_tが抜けた
238デフォルトの名無しさん (ワッチョイ 2101-3XbD)
2020/10/26(月) 22:12:25.39ID:pV+9Vnjg0239デフォルトの名無しさん (ワッチョイ 0d7c-Naer)
2020/10/27(火) 12:22:27.85ID:telUcSp60240デフォルトの名無しさん (ワッチョイ 5335-OcNG)
2020/10/29(木) 08:19:02.64ID:HwPze+NQ0 どーせ、プロセッサのプロテクトモードとかで、純粋にポインタの計算すると意図しないオーバーフローやアンダーフローするからじゃね?
241デフォルトの名無しさん (ワッチョイ 0bb6-CXnf)
2020/11/01(日) 06:41:32.43ID:TJdrJp6g0 ポインタは符号付きなわけか
242デフォルトの名無しさん (ワッチョイ 12ad-ghpU)
2020/11/07(土) 11:29:01.04ID:zMpN0fYG0 ファミコンってC言語でもプログラミングできるんだねえ
すごいねえ
すごいねえ
243デフォルトの名無しさん (ブーイモ MMad-z/nF)
2020/11/07(土) 15:37:28.16ID:vm8bz31qM そんなのコンパイラ次第じゃないのか?
知らんけど
知らんけど
244デフォルトの名無しさん (ワッチョイ 92ad-t1Nk)
2020/11/08(日) 15:22:32.44ID:iVjroALJ0 >>242
ファミコンのCPUは2A03(6502互換)だからかなり苦しい感じだと思うけどな。
スタックポインタが8bitしかないしな。つまりスタックは256バイト固定。もちろんメモリは最大64KB。
それでもCコンパイラはあったようなのでかなり工夫したんだろうと思う。
ファミコンのCPUは2A03(6502互換)だからかなり苦しい感じだと思うけどな。
スタックポインタが8bitしかないしな。つまりスタックは256バイト固定。もちろんメモリは最大64KB。
それでもCコンパイラはあったようなのでかなり工夫したんだろうと思う。
245デフォルトの名無しさん (ワッチョイ adda-bRPx)
2020/11/08(日) 16:57:10.35ID:qvYN+WNM0 今も昔もゲーム機の開発なんかはクロス環境だろ
ターゲット上で直接コンパイラ走らせているとは思えないのだが
ターゲット上で直接コンパイラ走らせているとは思えないのだが
246デフォルトの名無しさん (ワッチョイ b163-7Ce/)
2020/11/08(日) 17:19:43.81ID:fW7gwItS0 任天堂から高価な開発機を借りるか買うかしてやるんじゃなかった?
247はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ee3e-L1wp)
2020/11/08(日) 17:30:03.29ID:jznHieWa0 >>245
いやいや、ランタイムの保証が小さければ工夫がいることにはかわらんやろ。
いやいや、ランタイムの保証が小さければ工夫がいることにはかわらんやろ。
248デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 06:33:25.75ID:ntGr9Bxw0 「Cが使える」=「Cコンパイラを実行できる」と思ってしまうやつって
BASIC出身なんだろうな
BASIC出身なんだろうな
249デフォルトの名無しさん (スププ Sdb2-dhhq)
2020/11/09(月) 07:43:11.08ID:RNMdHR5xd そりゃコンパイル後のバイナリは言語とは関係ないから「ある言語が使える」はそのプラットフォーム上でコンパイラなりインタプリタが動くことを意味するやろ
250デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 08:25:46.31ID:ntGr9Bxw0 ドヤるようなことかよw
251デフォルトの名無しさん (ラクッペペ MM96-SeBg)
2020/11/09(月) 09:08:37.31ID:xqW72pM4M252デフォルトの名無しさん (ワッチョイ b1d2-t1Nk)
2020/11/09(月) 11:06:53.99ID:msclAy3m0 FCの開発機は1千万円でメガドラ、PCエンジンは250万円という記事を昔みかけた。
そういやぁバッ活に「子育てごっこ」とかいうFC開発キットの広告出てたっけ。
そういやぁバッ活に「子育てごっこ」とかいうFC開発キットの広告出てたっけ。
253デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 11:56:33.56ID:ntGr9Bxw0 あの頃のカスタムLSIは衝撃だったね
255デフォルトの名無しさん (ワッチョイ 9eb6-t1Nk)
2020/11/09(月) 12:11:03.31ID:ntGr9Bxw0 ( ゚∀゚) アハハハハノヽノヽノ \ / \ / \
256デフォルトの名無しさん (ワッチョイ 9202-wqoK)
2020/11/09(月) 13:23:50.49ID:YVG+/FyZ0 もう諦めた
パンツはく
パンツはく
257デフォルトの名無しさん (ワンミングク MMa3-pjKh)
2020/11/13(金) 12:27:52.99ID:uyiuIcZiM goto 使うなと保健所や医者がうるさいの何なの。
258デフォルトの名無しさん (ワッチョイ dd69-PeJZ)
2020/11/13(金) 12:47:00.05ID:6BGA2vQ70 多重に囲い込まれているところからの脱出すら許さない教条主義
例外を認めるとあれもこれも際限がなくなるのでお役所作業
例外を認めるとあれもこれも際限がなくなるのでお役所作業
259デフォルトの名無しさん (ワッチョイ 9591-SiqM)
2020/11/13(金) 13:29:41.79ID:x2VHR/K20 仕事丸投げで解決
260デフォルトの名無しさん (ワッチョイ cbb6-Y0tO)
2020/11/13(金) 14:08:28.42ID:5HXc1MIP0 クリプトン星人に投げたくせに
クリプトン星人がgoto使うとゴチャゴチャぬかす
勝手な奴ら
クリプトン星人がgoto使うとゴチャゴチャぬかす
勝手な奴ら
261デフォルトの名無しさん (ワッチョイ 9b9a-plKQ)
2020/11/13(金) 20:49:27.65ID:0Q6l6RCm0 gotoは有害であるとみなされると、昔の偉い人が言いました。
262デフォルトの名無しさん (ワッチョイ a501-fAyS)
2020/11/14(土) 14:04:47.82ID:eZvyHs9U0 gotoキャンペーン中止の可能性
264デフォルトの名無しさん (ワンミングク MMa3-pjKh)
2020/11/14(土) 15:29:53.89ID:QvOqIpVLM basic風にgosubキャンペーンではどうだろう。
265デフォルトの名無しさん (ワッチョイ 233d-PeJZ)
2020/11/14(土) 15:46:33.79ID:kNYsw/sP0 gotoトラブル
266デフォルトの名無しさん (ワッチョイ 15d2-WW/G)
2020/11/14(土) 16:57:36.06ID:t12i3dhb0 Go To LOVEる
267デフォルトの名無しさん (ワッチョイ 1563-WW/G)
2020/11/14(土) 17:20:09.80ID:XuOfn3YC0 ここはアニメ板ですね
268デフォルトの名無しさん (ワッチョイ ddda-JlI4)
2020/11/14(土) 18:05:11.28ID:b41n/hcI0 プログラマの大凡半数はオタクだからな(´・ω・`)
269デフォルトの名無しさん (ワッチョイ 9521-maKZ)
2020/11/14(土) 18:16:19.79ID:3sCpnJ2t0 しかし例外トラベルはなんかいやだ。
>>267
アニメならば、2020 年地上波アニメで一番よかったのは a.i.c.o incarnation だったと私は考えています
アニメならば、2020 年地上波アニメで一番よかったのは a.i.c.o incarnation だったと私は考えています
271デフォルトの名無しさん (ワッチョイ 6347-NSHw)
2020/11/14(土) 22:05:45.83ID:XJ24TZhC0 そうか?
TRUEは歌がうまいし
白石晴香の声も好きだけど
設定が科学的なフリしてる割に中途半端だし
ツッコミどころ多くてなんだかなと思いながら観てた
TRUEは歌がうまいし
白石晴香の声も好きだけど
設定が科学的なフリしてる割に中途半端だし
ツッコミどころ多くてなんだかなと思いながら観てた
272デフォルトの名無しさん (ワッチョイ 23e0-Pj7A)
2020/11/15(日) 16:01:45.41ID:ZF6xjL9s0 webサイトぐらいしか作った事無いド素人なのですが
cheatengineのようなツールはどうやって作るのですか?
cheatengineのようなツールはどうやって作るのですか?
273デフォルトの名無しさん (ワッチョイ ed5f-NSHw)
2020/11/15(日) 16:31:52.95ID:U+/Dwi3J0 マルチしちゃったね
274デフォルトの名無しさん (ワッチョイ 1563-WW/G)
2020/11/15(日) 16:46:32.42ID:BV2MAPDR0 許すw
275デフォルトの名無しさん (アウアウウー Sa3b-t9SE)
2020/11/18(水) 02:01:14.39ID:7/2eOuWRa int suti[]={1,2,3};ってやったらsuti[3]は存在しないんだよね?for文で存在しなくなるまで〜ってやりたいんだけどどうすればいい?要素数が変わってもいいようにしたいからi != 3はやりたくないんだよね
276デフォルトの名無しさん (アウアウウー Sa3b-t9SE)
2020/11/18(水) 02:06:30.67ID:7/2eOuWRa277デフォルトの名無しさん (ワッチョイ e7ca-N/60)
2020/11/18(水) 02:16:10.62ID:D7KcGGQQ0 条件式をi<3;ってするのが定番かな。
278デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 02:16:23.70ID:xY74VPsT0 配列名ってメモリー上に付けられたラベルみたいなものだから、
添え字の範囲が想定を逸脱しててもアクセス出来るからな
エラーになるかは別にして
添え字の範囲が想定を逸脱しててもアクセス出来るからな
エラーになるかは別にして
279デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 02:17:27.84ID:xY74VPsT0 わりと真面目にやりたいなら、
#define Numof(n) (sizeof(n) / sizeof(n[0]))
for (i = 0; i < Numof(suti); i++)
#define Numof(n) (sizeof(n) / sizeof(n[0]))
for (i = 0; i < Numof(suti); i++)
280デフォルトの名無しさん (アウアウウー Sa3b-fmSy)
2020/11/18(水) 08:19:22.94ID:xva9VBXaa281デフォルトの名無しさん (ワッチョイ 62a5-Aw6/)
2020/11/18(水) 11:15:05.78ID:2WQ1ruJZ0 宗教的理由でsizeofを使いたくないなら
あとはセンチネルの-1を置くくらいしかない
int suti[]={1,2,3,-1};
……何がコイツの教義のお眼鏡に適うかどうか分からんからこれも否定されるかも知れんな
「存在」に関する用語の用法なら、やっぱり宗教的事案で、
「存在しているかどうかをチェックしたい」となるから宗教的思考が背後に控えていると思われる
配列の個数じゃなくて配列の存在だ
存在してるかどうかに強く拘ってんならやっぱり宗教事案なんだろう
だから理由なんて無いな
宗教的な事由で「要素数はイヤ」なんだろう
あとはセンチネルの-1を置くくらいしかない
int suti[]={1,2,3,-1};
……何がコイツの教義のお眼鏡に適うかどうか分からんからこれも否定されるかも知れんな
「存在」に関する用語の用法なら、やっぱり宗教的事案で、
「存在しているかどうかをチェックしたい」となるから宗教的思考が背後に控えていると思われる
配列の個数じゃなくて配列の存在だ
存在してるかどうかに強く拘ってんならやっぱり宗教事案なんだろう
だから理由なんて無いな
宗教的な事由で「要素数はイヤ」なんだろう
282デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/18(水) 11:49:11.86ID:kf1ewZiT0 BASIC時代の 文字数+文字データ 構造思い出した。
283はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b63e-b6az)
2020/11/18(水) 12:01:00.59ID:0x2GmUxc0 >>275-276
こういうトリックが使えなくもない
#include <stdio.h>
int main(void) {
int suti[]={1,2,3};
for(int *p=suti; p< *(&suti+1); ++p) printf("%d \n", *p);
return 0;
}
こういうトリックが使えなくもない
#include <stdio.h>
int main(void) {
int suti[]={1,2,3};
for(int *p=suti; p< *(&suti+1); ++p) printf("%d \n", *p);
return 0;
}
284デフォルトの名無しさん (ワッチョイ 62a5-Aw6/)
2020/11/18(水) 12:09:28.92ID:2WQ1ruJZ0 【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました - Togetter
ttps://togetter.com/li/1185437
これによるとBASICはかなり先見性があるらしいが
ttps://togetter.com/li/1185437
これによるとBASICはかなり先見性があるらしいが
285デフォルトの名無しさん (ブーイモ MM3e-cKwM)
2020/11/18(水) 12:59:08.65ID:8knHjFQ7M >>281
それ、センチネルやのうて、ただの終端マークや
それ、センチネルやのうて、ただの終端マークや
286デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/18(水) 15:03:37.53ID:kf1ewZiT0 BASIC自体が使い物にならないとは思わないけど、
命令セットが貧弱すぎてマシン語と組み合わせないと高度なことができなかった。
命令セットが貧弱すぎてマシン語と組み合わせないと高度なことができなかった。
287デフォルトの名無しさん (ワッチョイ c6b6-b6az)
2020/11/18(水) 16:20:02.97ID:2ppIm+8A0 言語自体で作れる機能がないのはCだってそうだ
BASICでそれをやると遅いからマシン語の出番があったってこと
USRやEXECじゃなく新コマンドを作ろうとすると結局BASICインタプリタのサブルーチンをJSRしまくることになる
BASICでそれをやると遅いからマシン語の出番があったってこと
USRやEXECじゃなく新コマンドを作ろうとすると結局BASICインタプリタのサブルーチンをJSRしまくることになる
288デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/18(水) 17:09:25.17ID:xY74VPsT0 BASICにはCALLと言う無敵の・・・いやなんでもない
289デフォルトの名無しさん (ワッチョイ af21-Gthl)
2020/11/18(水) 20:16:59.09ID:2DtKbiiK0 >>275
c++みたいな範囲for文ってCの構文に入らんのかの?
int suti[]={1,2,3};
for(int x: suti) do_some(x);
みたいなやつ。使いどころが極めて限定されるから意味ないかのう。
あとは変態マクロをコネコネするしか思いつかん。
c++みたいな範囲for文ってCの構文に入らんのかの?
int suti[]={1,2,3};
for(int x: suti) do_some(x);
みたいなやつ。使いどころが極めて限定されるから意味ないかのう。
あとは変態マクロをコネコネするしか思いつかん。
290デフォルトの名無しさん (ワッチョイ c6b6-b6az)
2020/11/18(水) 20:22:04.53ID:2ppIm+8A0 原理主義的な美意識ならC++いくしかねえだろ
Cは実を取るポリシーだかんあ
Cは実を取るポリシーだかんあ
291はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b63e-b6az)
2020/11/18(水) 23:10:46.92ID:0x2GmUxc0 >>282
C/C++ の世界でも BSTR というものがあってな……。
C/C++ の世界でも BSTR というものがあってな……。
292デフォルトの名無しさん (US 0Hc7-0ni4)
2020/11/19(木) 01:25:26.46ID:k2ADczLrH MacにもPSTRというのがあったなあ。パスカル由来だっけ。
確か紅蓮華の人のような名前のコンピュータが...
確か紅蓮華の人のような名前のコンピュータが...
293デフォルトの名無しさん (アウアウウー Sa3b-0jXX)
2020/11/23(月) 22:01:17.13ID:9aSCyeCwa if (a()) {} else if (b()) {}
のとき呼ばれる関数の順は必ずa(), b()の順ですよね?
if (a()) {} else {if (b()) {}}
文法的には↑こういうわけだから間違いないですよね?
のとき呼ばれる関数の順は必ずa(), b()の順ですよね?
if (a()) {} else {if (b()) {}}
文法的には↑こういうわけだから間違いないですよね?
294デフォルトの名無しさん (ワッチョイ 425c-b6az)
2020/11/23(月) 22:52:02.39ID:O1GHu8Kp0 >293
a()の返り値が0以外(True)ならb()は実行されないんじゃないの?
a()の返り値が0以外(True)ならb()は実行されないんじゃないの?
295デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:18:54.48ID:JYMaFV+Pa そうじゃないと aで nullチェックからの bみたいのできなくなりそう
296デフォルトの名無しさん (ワッチョイ ef63-n9sk)
2020/11/24(火) 00:25:40.58ID:stGCUtDe0 NULLの時はそのまま後続処理続けるんでしょうか
297デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:29:07.26ID:JYMaFV+Pa nullのときは b を通過しないようにするかと
質問の趣旨とちょっと違ったかもしれませんね
ゴメンなさい
質問の趣旨とちょっと違ったかもしれませんね
ゴメンなさい
298デフォルトの名無しさん (アウアウウー Sa3b-+icx)
2020/11/24(火) 00:30:13.18ID:JYMaFV+Pa ダメレスの上書きだな…
重ね重ね申し訳ない
重ね重ね申し訳ない
299デフォルトの名無しさん (ワッチョイ 425c-b6az)
2020/11/24(火) 00:35:37.30ID:PK3X1vMU0 >if (a()) {} else if (b()) {}
書き直して
if ( a()!=0 ) { 処理1 } else if ( b(0)!=0 ) { 処理2 }
a()の返り値がTrue(0以外)ならば 処理1 を実行して次の行へ
a()の返り値がFalse(0)ならば b() を呼び出して、b(0)の返り値が True(0以外)ならば 処理2 を実行。
書き直して
if ( a()!=0 ) { 処理1 } else if ( b(0)!=0 ) { 処理2 }
a()の返り値がTrue(0以外)ならば 処理1 を実行して次の行へ
a()の返り値がFalse(0)ならば b() を呼び出して、b(0)の返り値が True(0以外)ならば 処理2 を実行。
300デフォルトの名無しさん (アウアウカー Sac7-i8bA)
2020/11/24(火) 09:15:59.48ID:ZWk4Vaeta if (stateA) else if (stateB) {} はまだ直感的だけど
if (a() && b()) { ... } で a() が偽の時 b() は実行されない
if (a() || b()) { ... } で a() が真の時 b() は実行されない
のはC言語ならではルールなので注意
if (a() && b()) { ... } で a() が偽の時 b() は実行されない
if (a() || b()) { ... } で a() が真の時 b() は実行されない
のはC言語ならではルールなので注意
301デフォルトの名無しさん (ブーイモ MM13-cKwM)
2020/11/24(火) 09:34:54.23ID:HgpldYdAM >>300
今時のたいがいの言語で同じルールだ。
今時のたいがいの言語で同じルールだ。
302デフォルトの名無しさん (ワッチョイ efd2-n9sk)
2020/11/24(火) 11:48:49.75ID:8CcwCAVK0 デバッガーでトレースするとか
printf()出力で確認するとかしないのかな?
8bit CPUのアセンブラ時代なんてバグでハングして(ry
printf()出力で確認するとかしないのかな?
8bit CPUのアセンブラ時代なんてバグでハングして(ry
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★5 [七波羅探題★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【速報】 米トランプ政権声明 「中国が台湾を奪おうとする、いかなる試みも阻止する」 中国「レッドラインだ」 ★2 [お断り★]
- 元プロ野球選手・堂上隼人(43)を20代女性2人へのわいせつ未遂容疑で8回目の逮捕…これまでの被害者は10代・20代の女性11人に [Anonymous★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 【高市悲報】自衛隊「実は事前に現場海域で中国軍から空母での発着訓練をすると通告がありました」え…?😨😨 [931948549]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- 【速報】中国人の凶悪犯罪が急増!害国人の変遷、韓国→ベトナム→中国へ🏡
- 【高市悲報】英テレグラフ紙「おい、日本会議に所属する偽サッチャーが債券市場を破壊してるぞ」🥺 [359965264]
- 【悲報】ジャップ、国際海峡の津軽海峡を中国海警局の船が通過しただけで何故かブチギレる🥹 [616817505]
- 高市首相「コメ増産を進める」 [834922174]
