21/01/28 08:01:19.64 Z02UUfjqK.net
>>684
たぶん意味がない。
今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。
プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
695:デフォルトの名無しさん
21/01/28 08:05:06.42 c7JCU6ma0.net
今時のOS,CPUだとアクセスした瞬間に例外発生する
696:はちみつ餃子
21/01/28 10:46:55.99 vBYpvnJx0.net
>>684
(現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、
あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。
他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには
OS に依頼して仲介してもらうという形をとる。
プロセス間でメモリの共有をすることも可能だが、
それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形
なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。
あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。
それがセキュリティというものだよ。
697:デフォルトの名無しさん
21/01/28 11:01:24.92 dNWrUHbO0.net
>>682
毎回リセットして最初から実行するのも君の説ではループの範疇だな
698:デフォルトの名無しさん
21/01/28 11:03:43.19 dNWrUHbO0.net
>>690
>>692
DLL injection とかしても無理?
699:はちみつ餃子
21/01/28 11:57:56.44 vBYpvnJx0.net
>>694
アクセスされる側にとって (普通は) 意図しないものであるには違いないけど、
一応は OS が許可した上で各プロセスにアタッチする形なので
ひとつのプロセス内でのことになるから別のプロセスからアクセスするのとは理屈が違うんじゃないかな。
プロセスの独立性は壊れないし、権限が上位のプロセスにはアタッチできないんじゃなかったっけ?
まあときどき権限昇格の脆弱性が発見されたりはしてるけど……。
700:デフォルトの名無しさん
21/01/28 12:14:49.58 eBfsAdOM0.net
>>684
デバッガでも作りたいのか?
701:デフォルトの名無しさん
21/01/28 12:16:47.81 Tpt+oTXId.net
>>693
そうだね
ソフトによるリセットなら本質的にはソフトループと変わらない
702:
21/01/28 19:47:55.90 4gHVOrOA0.net
>>671
クラシック系の耳にはすごく斬新に聞こえますが、世間一般的には簡単な部類に入るのですか、私は井戸の底の蛙だったんですね‥‥
703:
21/01/28 19:50:41.53 4gHVOrOA0.net
>>686
TSR はロマンで私もキー
704:入れ替えとかいろいろ凝っていた時期があったんたけど、TSR に似たプログラミングって最近はなんですか?
705:
21/01/28 19:51:53.47 4gHVOrOA0.net
>>692
でも、i386 アーキテクチャの「コールゲート」とかは廃れてしまったんですよね…‥
706:デフォルトの名無しさん
21/01/28 20:19:09.21 Sg/ycOHU0.net
WaveToneとかの便利なソフトがあっての
707:
21/01/28 22:08:52.27 4gHVOrOA0.net
>>701
そのソフトは大昔(win95 の時代)にも開発してくださっていた方がいて便利に浸かっていました‥‥
----------------------------------------------------------------------------
【ソフト名】 TonagramView for Win95 Ver.0.3β
【 作成者 】 Zephyr <NCC00723@niftyserve.or.jp>
【登 録 名】 SHIINE03.LZH
【圧縮形式】 LHa 2.55b
【動作環境】 Windows 95
【転 載】 事前の許可が必要
【掲載月日】 1997/08/30
----------------------------------------------------------------------------
このプログラムは、WAVファイルを周波数解析してtonagram(ピアノロールのような
グラフ)を表示するツールです。
耳コピをしていると、どうしてもコードが採れなくて泣きたくなることがよくあり
ます。そんなときは、tonagramを調べれば、鳴ってる音を目で見ることができるの
で、適当にピックアップしてやれば楽にコードを拾えます。v(^^)
今回、GUI化によりリードアウトカーソルなどの機能が強化されています。
また、解析結果のロード・セーブが可能になりましたので、結果をセーブしておけ
ば解析にかかる時間を節約することができます。
★Ver.0.2βからの改良点
・待望(?)のGUI化
ロード・セーブ・印刷
リードアウトカーソル 等
・ピークサーチアルゴリズムの変更(精度より見た目を重視)
NCC00723 Zephyr
708:デフォルトの名無しさん
21/01/29 00:08:49.78 BmYQVI6m0.net
>>698
斬新に聞こえるかどうかはともかく
コード自体は非常に簡単
ちなみに私もクラシック系
709:デフォルトの名無しさん
21/01/30 12:01:56.26 EWZvTk3zF.net
>>702
404
710:デフォルトの名無しさん
21/01/31 19:33:07.61 jQyDM6Cn0.net
enum A
{
max_value = 0x7fffffffffffffffLL;
};
こんなことしても64bitのenumはつくれないんだっけ?
711:デフォルトの名無しさん
21/02/01 00:52:02.23 5yr9aQzL0.net
整数型ならいいらしいから、64bitになるコンパイラがあっても規格違反ではないと思う
712:デフォルトの名無しさん
21/02/01 01:29:58.21 OjiuyGRS0.net
infinity 定義されてるだろ?
713:デフォルトの名無しさん
21/02/01 07:03:50.51 v6ebtUL10.net
整数型に?
714:デフォルトの名無しさん
21/02/01 07:51:42.98 9cKOvUYE0.net
>>706
処理系依存しないで確実に64bit以上にする方法ってないんだっけ。
ベース型の指定はC++だよなあ。
715:デフォルトの名無しさん
21/02/01 08:04:18.96 SoQHgLGL0.net
64bit整数型がない環境があるんだから
確実に64bit以上なんて無理
716:デフォルトの名無しさん
21/02/01 08:15:50.49 v6ebtUL10.net
sizeof max_value
gcc, clang: 8
cl: 4
717:デフォルトの名無しさん
21/02/01 08:27:26.16 9cKOvUYE0.net
>>710
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
718:デフォルトの名無しさん
21/02/01 09:03:50.04 5yr9aQzL0.net
Cのenumはマクロと大して変わらんのだから、マクロで代用するとか
719:デフォルトの名無しさん
21/02/01 09:11:58.71 v6ebtUL10.net
マクロに代わるべく作られたenumがマクロで代用されるとは
無様な・・・
720:デフォルトの名無しさん
21/02/01 09:18:04.19 v6ebtUL10.net
6.7.2.2 Enumeration specifiers
3 The identifiers in an enumerator list are declared as constants that have type int and may appear wherever such are permitted.
6.7.2.2 列挙型指定子
意味規則 列挙子並びの中の識別子は,型int をもつ定数として宣言され,この型の定数が許されるところならばどこに現れてもよい。
はっきり、intと書いてあるね
long longになる余地は全くない
721:デフォルトの名無しさん
21/02/01 11:57:56.06 vkxM9MCda.net
intとlong longが同一の可能性は残る
まぁ普通ではないが
素直にC++でenum classにするのがいいのでは
722:デフォルトの名無しさん
21/02/01 14:28:14.54 fos4FOVOF.net
enum と enum class って紛らわしいよね
723:デフォルトの名無しさん
21/02/01 17:41:32.38 v6ebtUL10.net
enum classは関係ない
enum-baseだ
724:デフォルトの名無しさん
21/02/01 19:37:32.66 vkxM9MCda.net
>>718
enumのベース型ってenum classじゃなくても出来たのか
勘違いしてたわ
725:デフォルトの名無しさん
21/02/01 21:43:21.53 9cKOvUYE0.net
>>715
なるほど、ありがとう。
726:デフォルトの名無しさん
21/02/02 06:19:12.09 wjKGtX300.net
enumはステート制御で重宝する。
727:デフォルトの名無しさん
21/02/02 15:29:55.49 gtWVIswm0.net
質問です。__lsan_disableが期待通りに動きません。
サイト見るとAllocations made between calls to __lsan_disable() and __lsan_enable() will
be treated as non-leaks. Disable/enable pairs may be nested.と書いてあったのでプログラム作りました。
しかし__lsan_enable~__lsan_do_leak_checkもリークチェックされます。原因が分かりません。
#include </usr/lib/gcc/x86_64-linux-gnu/10/include/sanitizer/lsan_interface.h>
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void* thFunc(void *arg) { __lsan_disable(); sleep(4); fprintf(stderr, "en start\n"); __lsan_enable();
fprintf(stderr, "en end\n"); sleep(4); __lsan_do_leak_check(); exit(-1);
}
int main() { int rc; pthread_t th; pthread_create(&th, 0, thFunc, 0);
for (int i = 0; i < 30000; i++) { sleep(1); int *p = malloc(1);
fprintf(stderr, "malloc\n"); } return 0;}
よろしくお願いいたします
728:デフォルトの名無しさん
21/02/03 08:08:40.40 3ZiqWZ4T0.net
>>712
処理系依存
729:デフォルトの名無しさん
21/02/04 11:24:59.43 P1e/f4pz0.net
テキストファイルを読み込む場合、主にfgetsやfgetcでやる方法があると思うのですが調べてみるとmmapを使う方法もあるようなのですがどれを使うのが良いんですかね?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
730:はちみつ餃子
21/02/04 12:15:35.04 ttCVH4wp0.net
>>724
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
731:デフォルトの名無しさん
21/02/04 13:31:56.12 P1e/f4pz0.net
>>725
ファイルサイズで使い分ける感じなんですね
ありがとうございます
732:はちみつ餃子
21/02/04 13:43:25.23 ttCVH4wp0.net
>>726
処理の内容によってプログラムのデザインには選択肢があって、
ファイルからの読み込みの仕方はそのデザインに付随するという感じ。
733:デフォルトの名無しさん
21/02/04 14:20:09.93 jgksMTX2d.net
C言語スレで
せいぜい数メガと言っちゃう感覚
734:デフォルトの名無しさん
21/02/04 14:24:26.67 xGlwnT6u0.net
もう21世紀だからな
ここから先は1GBのテキストファイルが普通になる
735:デフォルトの名無しさん
21/02/05 07:55:44.29 I+zADhcc0.net
>>728
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
736:デフォルトの名無しさん
21/02/05 08:01:49.33 XbPEadHi0.net
せいぜい数メガと言えるようなリッチな環境で
C言語でアプリを書く方が珍しいだろ
737:デフォルトの名無しさん
21/02/05 08:20:44.95 JqQJ/dMo0.net
>>731
質問者>>724がやりたいって言ってるんだから、珍しいかどうかなんてどうでもいいだろう
738:デフォルトの名無しさん
21/02/05 08:32:27.83 XbPEadHi0.net
せいぜい数メガと言えるようにリッチな環境かどうかなんて
>>724にしかわからないわけだけど
で>>731を考えたらリッチじゃないって考えるのは自然な発想
739:デフォルトの名無しさん
21/02/05 08:42:07.98 oeXhrntJ0.net
「決めつけ」はバグとセキュリティホールの元。
740:デフォルトの名無しさん
21/02/05 09:02:30.99 AjJLCZmld.net
スパコンのOSはCで書かれている
741:デフォルトの名無しさん
21/02/05 09:20:14.53 I+zADhcc0.net
>>731,733
なぜC言語なのかは>>724に聞いてくれ
少なくとも今どきmmapまで使える環境でメガも乗ってない環境って相当珍しいだろって話な
742:デフォルトの名無しさん
21/02/05 12:39:42.10 1XmQmKI8d.net
>>736
>>734
743:デフォルトの名無しさん
21/02/05 12:52:09.08 AV0Gp17OM.net
>>737
珍しくないと言うなら実例をあげればいいだけ
744:デフォルトの名無しさん
21/02/06 10:12:48.76 DFt8vUVO0.net
mmapってUNIX系OSだけでは?他にもあるかも知れないが互換ライブラリ経由でそのOS固有の同機能のやつ呼んでたりしない?(それで良いなら良いんだが)
745:デフォルトの名無しさん
21/02/06 10:51:00.80 PohEB++tF.net
対象をhtmlに限定したのが敗因
746:デフォルトの名無しさん
21/02/06 11:26:44.70 EjDQT0l8K.net
>>739
メモリマップトファイル一般を指しての発言じゃないかな、CreateFileMapping()とか含めて。
>>740
たぶんシーケンシャルアクセスで足りるから、read()でええやんってなるよな。
747:デフォルトの名無しさん
21/02/06 11:45:50.67 zn5WrP4C0.net
>>739
何が問題なのかよくわからんが?
748:デフォルトの名無しさん
21/02/22 07:04:45.29 Xbe4DE+80.net
どうやったらループを小さくしたり無くしたり出来るのか教えてほしい。
749:デフォルトの名無しさん
21/02/22 08:02:42.93 NYs90WT8M.net
べた書き?
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
750:デフォルトの名無しさん
21/02/22 17:21:30.68 iIDQLaUs0.net
標準ライブラリにある処理はなるべく標準ライブラリのを使うとか
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
751:デフォルトの名無しさん
21/02/23 02:48:11.51 VIkkm8/qd.net
>>739
実装は知らんがむしろwinでは頻用すると思う
80'後半くらいに生まれたそろそろ古参なスクリプト言語(Pythonなど)には大体ある
スクリプト故に富豪的に全部載せ
752:デフォルトの名無しさん
21/02/23 03:04:42.97 VIkkm8/qd.net
>>743
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点�
753:烽る mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝 なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
754:デフォルトの名無しさん
21/02/23 03:15:27.68 VIkkm8/qd.net
いや今書いたのも改めて並べるとmodに慣れていと1分くらい考えるか…
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス
ネストしたループを全てワンライナーで書けるFortranが羨ましい
755:デフォルトの名無しさん
21/02/23 03:42:44.91 1ia+Vnu00.net
divもmodもクソ遅いと思うんですがそれは
756:デフォルトの名無しさん
21/02/23 04:31:33.75 VIkkm8/qd.net
>>749
ステップ数で考えてたからそういう視点は無かったかも、精々2倍程度だし見落としてた
-o3とかするとベンチ的には速いから最適化とか効いてるんだろうかね?
757:デフォルトの名無しさん
21/02/23 04:35:35.49 VIkkm8/qd.net
だからといってわざわざ速い最適化divmod拾ってくるまでの価値も無いし、つまらんハックか
猛省
758:デフォルトの名無しさん
21/02/23 08:24:27.89 NtDnGIIYK.net
まあ定数の割り算は掛け算で実装するよな
759:751
21/02/23 12:00:01.73 EYNng8zFd.net
>>752
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
760:デフォルトの名無しさん
21/02/23 12:21:23.56 1ia+Vnu00.net
目安でしかないがx86-64ではmulと比べてdivやmodはレイテンシ2倍どころではない場合が多い
URLリンク(www.agner.org)
パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
761:デフォルトの名無しさん
21/02/24 15:46:51.63 /D2VYVJH0.net
ソフトウェア割り込みプログラムは書けるのか
762:デフォルトの名無しさん
21/02/25 06:12:34.32 R7WVwVFS0.net
>>755
インラインアセンブラ必須かな
763:デフォルトの名無しさん
21/02/25 07:07:20.11 bxBNuN1v0.net
環境次第
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
764:デフォルトの名無しさん
21/02/25 09:55:57.73 R7WVwVFS0.net
>>757
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
765:デフォルトの名無しさん
21/02/25 19:11:28.17 k63j55rm0.net
VCで作った実行ファイルを
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
766:デフォルトの名無しさん
21/02/25 19:17:09.21 JLHf2OjdM.net
>>759
どのHTTPサーバか、どんな設定にしてるかにもよるけど
名前だけ変えればおkじゃねーの?
767:デフォルトの名無しさん
21/02/25 20:00:24.23 MOr3wCfr0.net
ファイル名変えておいとくだけなんとちゃうの?
768:デフォルトの名無しさん
21/02/25 20:06:31.57 ZW7ncKwI0.net
Windows系サーバーだったら、
実行ファイルc.exeをc.cgiにリネームすれば動くはず
769:デフォルトの名無しさん
21/02/25 20:47:45.34 yh+1kBamK.net
そもそもCの話じゃないんだが
>>759
エクスプローラの表示の設定を「拡張子を表示する」モードにすべし
「拡張子を表示しない」のチェックを外す方式だったかもしれん
770:デフォルトの名無しさん
21/02/26 03:45:13.89 5d4w5oMJ0.net
>>763
スレチ
771:デフォルトの名無しさん
21/02/26 06:57:40.05 eCf8RuSVK.net
//何だよ俺のせいかいw
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
772:デフォルトの名無しさん
21/02/26 08:02:43.73 M2eccXrmd.net
renameってstdio.hだっけ?
773:デフォルトの名無しさん
21/02/26 09:51:30.74 31AFaQsJ0.net
>>766
stdioじゃよ
774:デフォルトの名無しさん
21/02/26 12:12:32.73 M2eccXrmd.net
げ、本当だ
775:デフォルトの名無しさん
21/03/15 16:52:25.12 XyNDIUjTa.net
すみません、質問させてください
exturn FUNC(void, define1) 関数名(void)
ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
776:デフォルトの名無しさん
21/03/15 17:06:32.77 Db4OPSpGM.net
>>769
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
777:デフォルトの名無しさん
21/03/15 17:07:39.42 XyNDIUjTa.net
>>770
ですよねー
もう聞くわ
778:デフォルトの名無しさん
21/03/16 08:22:50.63 7emEuadh0.net
Cの文法内に収まる FUNC() って
一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt
ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
779:デフォルトの名無しさん
21/03/19 19:09:51.97 mKZFPhjYM.net
ret opt の記述順を変えなきゃなんないコンパイラ併用でもしてなきゃ
必然性無いよな
780:デフォルトの名無しさん
21/04/25 18:24:42.50 1rqnmNJD0.net
VS2019を使用してます。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
781:デフォルトの名無しさん
21/04/25 18:43:09.76 f5CNtQYv0.net
C++ hashクラスを使う
C 自作する
スキな道を歩もう
782:デフォルトの名無しさん
21/04/25 19:49:36.36 bD1toMMoM.net
Cにはない
多少は作るに該当するが、GPL汚染気にしないならhlist(list.h)かいっそのことrbtree引っ張ってくるのが楽
hlistは覚えてないがfreeBSDにもlist_headはあったと思うから雑に書いて作れる
783:デフォルトの名無しさん
21/04/25 20:00:40.49 1rqnmNJD0.net
>>775-776
ありがとうございます。
784:デフォルトの名無しさん
21/04/26 17:39:11.35 BhPjOTnw0.net
境界調整について教えて下さい
typedef struct stru{
int inta;
char ch;
double db;
} Str;
という構造体を作って、
Str st = {10 , 'n' , 5.20};
printf("構造体全体の大きさは %dバイト アドレスは %p \n", sizeof(st) , &st);
printf("inta の大きさ %dバイト アドレスは %p 値は %d \n", sizeof(st.inta), &st.inta , st.inta);
printf("ch の大きさ %dバイト アドレスは %p 値は %c \n", sizeof(st.ch) , &st.ch , st.ch);
printf("db の大きさ %dバイト アドレスは %p 値は %lf \n", sizeof(st.db) , &st.db , st.db);
としたところ、
構造体全体の大きさは 16バイト アドレスは 0019FF2C
inta の大きさ 4バイト アドレスは 0019FF2C 値は 10
ch の大きさ 1バイト アドレスは 0019FF30 値は n
db の大きさ 8バイト アドレスは 0019FF34 値は 5.200000
という結果が得られたんですけど、この中で
0019FF30から1バイト分には'n'という値が入っていて、
0019FF34から8バイト分には5.200000という値が入っているわけですよね?
では0019FF31から0019FF34までは何があるの?
785:デフォルトの名無しさん
21/04/26 17:55:49.95 NyQKOVd9d.net
何もない
786:デフォルトの名無しさん
21/04/26 18:15:58.84 IaPVNFDHa.net
ごみ
787:デフォルトの名無しさん
21/04/26 18:21:46.90 uqOlgHvIM.net
>>778
何があるかわからないしむりやり読んだら何が起こるかわからない
ってことになってる
788:デフォルトの名無しさん
21/04/26 18:27:06.04 4kXIzh+CM.net
>>778
ファイルに書き出してバイナリダンプ
gdbでx
見ても大したことない
789:778
21/04/26 18:28:20.87 BhPjOTnw0.net
その領域はとにかく使えないって事なんすかね。
790:デフォルトの名無しさん
21/04/26 18:31:26.64 NyQKOVd9d.net
そうなんです
791:デフォルトの名無しさん
21/04/26 18:32:08.60 TR73VE240.net
使いたいならchの後にcharを3つ作ればいいじゃない
792:デフォルトの名無しさん
21/04/26 20:06:39.04 fVzcGJCCa.net
>>778
__attribute__ ((packed))
793:デフォルトの名無しさん
21/04/26 20:43:03.58 +l9LtKe60.net
#pragma pack(push,1)
>>778
#pragma pack(pop)
794:デフォルトの名無しさん
21/04/26 22:14:43.60 BhPjOTnw0.net
またいつの間にかレスが。
>>784
それもありか。なるほど。
>>786,787
そういうのがあるんですか。入門書なんかには出てこないよね、それw
教えていただきありがとです
795:788
21/04/26 22:16:02.71 BhPjOTnw0.net
>>784は>>785だった
796:デフォルトの名無しさん
21/04/26 22:20:18.66 fe3Q/YJ30.net
訓練でC言語を習っています。
就職先としてはJAVAの客先常駐になると思うのですが、
C言語も習う以上はある程度使えるようになりたいと思っています。
ポインタが難しいとよく見るのですが、勉強になるウェブサイトが
ありましたら教えてください。
もしくはポインタだけの参考書があるようなのですが、
それを買った方が良いですかね?
797:デフォルトの名無しさん
21/04/27 06:03:07.86 RrDgDJ6XM.net
ゆとり?
技術的な内容ならまだしも学習方法や心構えまで他人に丸投げするのは職業人の姿勢として如何なものか
798:デフォルトの名無しさん
21/04/28 18:46:29.71 7AKt1vSf0.net
そういう時代
熱くなるな
PCを持ってないような人がソフト開発者として面接に来るような時代
799:デフォルトの名無しさん
21/04/28 21:52:06.89 PZc7df0ca.net
Cで Windows、Linux、macOS のすべてで動作するコンソールアプリを作りました
標準のライブラリのみを使用していたつもりでも、知らずにGNU拡張を使用していたり、若干の移植の障害はありましたが、それほどではありませんでした
同じようなことを C++ でやろうとした場合、Cより難しくなりそうでしょうか、そうでもないでしょうか
C++ でやるからには STL は使いたいです
800:デフォルトの名無しさん
21/04/28 22:44:05.13 7AKt1vSf0.net
同じようなもんじゃない?
801:デフォルトの名無しさん
21/04/28 23:21:11.19 PlZRAN+K0.net
言語仕様としてのGNU拡張は使ってもライセンスに触れないよな?
触れるのはライブラリ使用した場合じゃないか?
802:デフォルトの名無しさん
21/04/28 23:35:23.05 4KD2riuz0.net
コンパイラ独自の拡張であってポータビリティに欠けるってだけで
それ自体がGNUライセンスに引っかかるわけではない
803:デフォルトの名無しさん
21/04/28 23:56:50.52 sVhsMckNM.net
>>790
・格納先を渡す(普通のポインタ
・callee alloc(二重ポインタ
・関数ポインタ
これだけ分かってればいいというか、仕事でならこの範囲だけにしとけ
804:デフォルトの名無しさん
21/04/29 00:15:24.35 T1kQSA270.net
意外と引っかかるのは、複雑な変数宣言を読み解くこと
805:793
21/04/29 10:41:18.72 8DhczGXra.net
ご意見ありがとうございました
やはり、掛かる手間は同じようなものですかね
806:デフォルトの名無しさん
21/04/29 11:08:27.39 1rAkIDNr0.net
基本文法を憶えたら何かまとまったアプリを作んないと
ただ言語そのものを習ってそれっきりだと忘れるだけだぞ
807:デフォルトの名無しさん
21/04/29 13:50:03.41 56IZFSRD0.net
所詮は道具だし、使わないと忘れる
808:
21/04/29 16:32:35.09 q0JKcoqRH.net
>>793
C++11 以降は、例えばスレッド制御・ファイルシステムをライブラリに取り込む、など積極的に環境依存が少なくなるように動いている(ように私には見える)ので、多分移植はもっともっと易しくなる、と思います、失礼、易しくなる気がしないでもありません‥‥
809:
21/04/29 16:39:37.88 q0JKcoqRH.net
>>790
「新・標準プログラマーズライブラリ C言語 ポインタ完全制覇」前橋 和弥著
URLリンク(www.%61%6d%61%7a%6f%6e.co.jp)
ポインタを完全制覇してくれる本だそうです、私も興味があったのでポチりました‥‥
810:793
21/04/29 16:48:12.19 loQVmfSpa.net
>>802
ありがとうございます
そんなこともあるのかなと、淡い期待もしつつ… でした
811:デフォルトの名無しさん
21/05/02 15:45:22.42 LfIZA/yy0.net
cについてほとんど知らないけど、組み込みがメインな感じですか?
812:デフォルトの名無しさん
21/05/02 15:56:09.60 /1wJlD5g0.net
システムプログラミングの方が多いんでない?元々それ用だし
OSのインターフェース提供はどこもC
813:はちみつ餃子
21/05/02 16:01:37.32 VAfyzxcR0.net
パソコンでも低レイヤ (カーネルとかデバイスドライバとか) は C で書くことも珍しくはないし、
アプリケーションのめっちゃ速度が重要なとことかは C で書いたほうがチューニングしやすい。
言語処理系なんかはだいたい C か C++ で実装されるよ。 (Python とか Ruby とか Perl とか。)
ハードウェアの都合に合わせたチューニングが必要なところはパソコンにもまだまだ有って、
割合で言えばそれほど多くは無いけど、
絶対数で言えば組み込みで C が使われるよりはパソコンで C が使われるほうが多いと思う。
(数値的な根拠があるわけじゃなくて私の印象だけど。)
814:デフォルトの名無しさん
21/05/02 16:46:12.37 3j0DSsAI0.net
これからはカーネルドライバもRustで書こうぜ
815:デフォルトの名無しさん
21/05/02 18:40:43.65 r2Ed4Ypi0.net
>>808
だからメモリ割り当てでABENDするような言語系を
カーネルで使えるわけないでしょw
2021年4月15日 パニックお断り―Linus,"Rust for Linux"の盛り上がりに釘を刺す:Linux Daily Topics|gihyo.jp … 技術評論社
URLリンク(gihyo.jp)
816:デフォルトの名無しさん
21/05/02 20:01:40.03 3j0DSsAI0.net
>>809
だいじょぶだろ
そのうちなんかキャッチする機構とか実装すんだろ
そしたらLinusもニタニタしながら受け入れるよ
817:デフォルトの名無しさん
21/05/02 22:32:14.89 r2Ed4Ypi0.net
>>810
んじゃ、そうなってから>>808みたいなことは言おうねw
狸が逃げるよw
818:デフォルトの名無しさん
21/05/03 12:38:32.98 2qlH4pSsM.net
>>811
まさにそうする話がもまいの提示した記事に書いてあるんよ
819:デフォルトの名無しさん
21/05/07 21:44:15.09 vGOhdVnf0.net
>>811
URLリンク(www.tag1consulting.com)
「Rustなー、まあそのうちわかるんじゃねーの?
コアはねーだろうけどドライバならいんじゃね?
C言語の置き換えっつーよりCの補佐的な?」
って言ってるし、これ読む限り Linusもだいぶ前向きじゃん
820:デフォルトの名無しさん
21/05/08 20:10:13.24 jbZm9MmR0.net
github.com/bear24rw/alsa-utils/blob/master/aplay/aplay.c :135行
static off64_t pbrec_count = LLONG_MAX, fdcount;
が
static off64_t pbrec_count = LLONG_MAX;
と書かれていない理由を400字以内で述べよ。
ちなみに、我が家では LLONG_MAX値 == fdcount値 です。
821:デフォルトの名無しさん
21/05/08 22:16:59.18 4nIz2VjA0.net
しらねえ。
↑
5文字目
822:デフォルトの名無しさん
21/05/09 13:32:52.94 WMytKT+1F.net
>static off64_t pbrec_count = LLONG_MAX, fdcount;
>が
>static off64_t pbrec_count = LLONG_MAX;
>と書かれていない理由を400字以内で述べよ。
知らんがな
>static off64_t pbrec_count = LLONG_MAX, fdcount;
>が
>static off64_t pbrec_count = fdcount;
>と書かれていない理由を400字以内で述べよ。
書いた香具師に聴け
823:デフォルトの名無しさん
21/05/25 13:13:50.22 0e19GInL0.net
int (**c)[];
と
int *(*e[]);
の意味がわからずに困っています。
ちなみに二つとも意味がわかりません。これらは同じものなんでしょうか?
824:デフォルトの名無しさん
21/05/25 13:28:28.93 d4PPfL2v0.net
cはint配列へのポインタへのポインタ
eはintポインタへのポインタの配列で、丸括弧は不要
cとeは同じではない
825:デフォルトの名無しさん
21/05/25 13:33:48.93 tg9vUr3N0.net
ややこしそうなのは途中に strust や typedef 使って先送りにする
826:デフォルトの名無しさん
21/05/25 13:37:45.63 tg9vUr3N0.net
struct
827:デフォルトの名無しさん
21/05/25 13:44:44.11 7uNVaR2o0.net
ポインタ変数定義に()が付くと理解が困難になる・・・。
828:デフォルトの名無しさん
21/05/25 13:50:25.07 mW0d20UP0.net
より複雑な宣言子の解釈
URLリンク(docs.microsoft.com)
829:デフォルトの名無しさん
21/05/25 13:57:49.19 0e19GInL0.net
>>822
これが一番わかりやすかったです。
ありがとうございました。
830:デフォルトの名無しさん
21/05/25 19:01:00.19 5zVTpare0.net
小生使う機会ないんでそんな複雑な記述の経験ないし機会あっても出来る自信ないのだけれど、アセンブラで書くと縦長になるソレを横に圧縮したC言語って、ホント効率落とさず物臭する為の記述だよね。
(アセンブラよりは)安全だし。
831:デフォルトの名無しさん
21/05/25 21:20:58.20 d4PPfL2v0.net
ケントンプソンの面倒くさがりをデニスリッチーが後継した高級アセンブラ
832:デフォルトの名無しさん
21/05/25 21:26:46.44 mNrV1IEb0.net
cdecl で説明してもらえば?
833:デフォルトの名無しさん
21/05/26 09:42:42.04 mfYAtZMN0.net
pkg install cdecl すると,c++decl -> cdecl しかsym-linkしてないので
手動でexplain -> cdecl cast -> cdecl declare -> cdecl もいれておいた.
で,
explain 'int (**c)[]'
declare c as pointer to pointer to array of int
explain 'int *(*e[]);'
declare e as array of pointer to pointer to int
と説明された.
834:デフォルトの名無しさん
21/05/26 11:19:17.43 2/BE6bBSF.net
>>817-818
++c; // ← Error
++e; // ← OK
説明してみ?
835:デフォルトの名無しさん
21/05/26 11:21:32.69 2/BE6bBSF.net
ああ間違えたω
>>817-818
++c; // ← OK
++(c[0]); // ← Error
++e; // ← OK
++(e[0]); // ← OK
836:デフォルトの名無しさん
21/05/26 12:07:18.36 DNuuAFHS0.net
++eがOKなわけねえだろw
837:デフォルトの名無しさん
21/05/27 10:47:37.95 kQVwJQto0.net
ID:2/BE6bBSFは逃げたかw
まあ逃げたくもなるよな
あんな赤っ恥w
838:デフォルトの名無しさん
21/05/27 14:56:50.43 UXlES6Sbd.net
typespecifer declarator-initializer;
と実質的に型を決める文法要素が二分されてるのがイケてないとは思う
=で示されるinitializerまたは代入式の右辺でアサインされる対象が左辺そのものでなく、declaratorの識別子部分なのも=の意味論(等しくする)に合ってないよなあ
まあ慣れるんだけど
839:デフォルトの名無しさん
21/05/27 15:03:11.46 UXlES6Sbd.net
関数ポインタと配列とポインタが入り交じるようなときは、各部分毎にtypedefして、数行に分けて型を組み立てるのがよいと思う
840:デフォルトの名無しさん
21/05/27 15:08:30.66 UXlES6Sbd.net
c23では宣言(というか殆どの構文)に付けられるattribute([[attr]])が入るけど、これ改造して[[type]] identifier;の形で宣言するように(仕様上は)できるよね
c23以降の規格で取り入れられないかな?
841:デフォルトの名無しさん
21/05/28 01:02:59.83 7zb2zdx50.net
基本情報で分からないとこあるんで教えてください。。
Cに入るのがなんでキなんでしょうか
p→coursenameはポインタだから、出力する時は*p→coursenameにすべきでは無いでしょうか
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
842:デフォルトの名無しさん
21/05/28 03:00:31.68 EK8Kl+z60.net
>>835
文字列を出力したいならフォーマット指定子は%s、第3引数以降で渡すのは先頭アドレス
*p->courseNameじゃアドレスじゃなくて先頭の1Byteになっちゃう
843:デフォルトの名無しさん
21/05/28 03:02:57.31 reEc78CW0.net
うーん、入門書はなんて書いてあるんだろ
Cで文字列を表現するときはchar型の配列もしくはchar型の配列を指し示すポインタを用いる。
だから出力するときも配列もしくはポインタを用いて、
printf("%s", str); //ここでstrはchar型配列かポインタ
みたいに記述する。
もしもここで*strと書いてしまうと、それは配列もしくはポインタが指し示す配列の先頭の1文字を示すことになり、それはもう'a'とか'b'とかいった値でしかないから、次の文字の所在がわからず文字列を取り出せない
844:デフォルトの名無しさん
21/05/28 06:03:30.13 2aHU1C7x0.net
現在訓練校でCを学んでいます。
基本情報って資格としての価値はどの程度なのでしょうか?
私なりに調べてみましたが、マストではなく、昇給・昇格のために必要なケースが多そうな
印象だったので、訓練中はプログラミングを中心に勉強して、就職後に資格に挑戦しようと思っています。
845:デフォルトの名無しさん
21/05/28 06:23:27.84 fuFcwWPl0.net
価値があるのはレベル4だけ
それ以外はレベル4を目指す者の励みとしての昇段のようなもの
846:デフォルトの名無しさん
21/05/28 08:14:27.25 keyTlfbM0.net
>>836
>>837
そうゆうことですか、ありがとうございます!
理解しました
847:デフォルトの名無しさん
21/05/28 09:35:32.42 fuFcwWPl0.net
昔、特種持ってるけどひでえコードかくバカいたよ
848:デフォルトの名無しさん
21/05/28 11:12:18.91 ymLe7hdU0.net
>>835
こういう手合いは知恵袋や寺尾にはウジャウジャいる
コイツラ、自己参照構造体とリスト構造からして分かってないよ
基本ができてねーんだもん、応用が出来るワケない
849:デフォルトの名無しさん
21/05/28 11:53:19.85 0F7o22rA0.net
大学のC言語講義の最初のテストの時点で"1234"と'1234'の違いさえ理解してなかったよ。
翌年にはアセンブラでC言語から呼び出す関数書いてたけど。
850:デフォルトの名無しさん
21/05/28 12:11:32.46 eNCMSwEe0.net
>>838
基本情報資格は、プロの登竜門・初級以上と認められる。
これを持っていないと、アマチュアの趣味扱いで、プログラミングが好きな人
例えば、YouTube で有名な、雑食系エンジニア・KENTA のサロンでも、
自社開発ウェブ系の未経験者の初級カリキュラムにも入っている
基本情報、Ruby on Rails, Linux, Docker Compose, VSCode, Node.js など。
Docker Composeまでが初級者コース
851:デフォルトの名無しさん
21/05/28 13:21:37.52 fuFcwWPl0.net
アマチュアの趣味で、プログラミングが好きな人にもすげえのいるけどな
852:844
21/05/28 14:32:25.27 eNCMSwEe0.net
基本情報とか持っていない人は、
知識が偏っている・狭いとか、常識が無いこともある
資格の知識は、広く浅いから、基礎・常識を学ぶには良い
医者で言えば、身体全体は常識の範囲内で分かるけど、
手術できるのは、自分の専門分野に限るとか
爺の医者が言ってるけど、
若い医者には、常識のない香具師とかいるので怖いとかw
専門分野以外でも、それぐらい常識だろうみたいな
853:844
21/05/28 14:39:17.23 eNCMSwEe0.net
日本の雇用体系では解雇できないから、
どうしても、学歴・資格による事前審査型になってしまう
出来ない人を雇いたくない。
損害が大きいから
一方、米国では、全員がフリーランスと同じ扱いだから、
お試しで雇って、出来なければすぐに解雇できる
実力主義。
学歴・資格も関係ない
出来る香具師が来るまで、解雇し続ける。
事後の結果重視型
854:デフォルトの名無しさん
21/05/28 14:47:30.76 fuFcwWPl0.net
専門外の手術ができる医者なんかいねえぞ
855:デフォルトの名無しさん
21/05/28 14:57:42.29 R3ooSWDP0.net
>>848
専門外とはいっても傷を縫うくらいは割と誰でもできるよ
856:デフォルトの名無しさん
21/05/28 15:41:13.46 fuFcwWPl0.net
重箱の隅を突くような例を持ち出して何が言いたいんだ?
情報処理技術者試験の何を例えようとしてるんだよ
857:デフォルトの名無しさん
21/05/28 15:41:44.26 noi5k0SLF.net
>>838
基本情報はカス
英検4級クラス
ちょっと使えるかもしれないのは応用情報以上から
858:デフォルトの名無しさん
21/05/28 16:21:08.86 d4trihsO0.net
放屁を表現するにはどのように組めばいいですか?
859:デフォルトの名無しさん
21/05/28 17:22:56.65 2aHU1C7x0.net
>>839
>>851
ありがとうございます。
いつでも挑めそうなので、今はプログラミングについて探求していこうと思います。
860:デフォルトの名無しさん
21/05/29 13:03:23.38 r3cbJcYW0.net
>>850
情報処理技術者と医者は違うよ
861:デフォルトの名無しさん
21/05/29 13:45:09.13 aPQQ38Uv0.net
>>854
それは846に言ってくれ
862:デフォルトの名無しさん
21/05/29 23:42:24.57 My8NRvOD0.net
>>854
情報処理技術者と医者の比喩とは、どう違うのですか。
863:デフォルトの名無しさん
21/05/30 10:37:22.47 ssDmNHo+0.net
医者は治療に特化した知識や技術はあるけど
科学的な思考を出来る医者は意外と少数派のイメージ
864:844
21/05/30 11:15:42.19 Gk//zzeB0.net
外科部長とか、手術のトップでも、何十年も専門医を取れない香具師もいる。
かと思えば、専門医は常識だけで取れる、取れない香具師は馬鹿という香具師もいる
教授クラスでも、病理・解剖の報告書の意味が分からない香具師も一杯いる
報告書は難しくて、意味が分からないけど、
大丈夫と書いてありますから、大丈夫ですと説明する教授とかw
基本、自分の専門分野以外は分からない
865:デフォルトの名無しさん
21/05/30 12:45:34.55 V/qTlijF0.net
資格の壁を欲しがるのは、実際的な実力のない人でしょうな
立場が弱い方が過酷ゆえ、実際的な実力が付く(初心者はさておき)
それを抑え込みたい(過酷ゆえ、彼らは時間のかかる読書をする余力がない)
残念ながらそういう社会なので、生活の知恵としては、有益、てことなんだろうけど
そして昨今の大企業や役所で多いトラブルは、その資格神話が原因だと思う
下を切り過ぎて、下に丸投げしてたプロパーにやらせるケースが増えたんじゃないかな
実力があるんでしょ?ていうw
866:デフォルトの名無しさん
21/05/30 13:19:09.44 4Llulaw20.net
なるほど
日本語が不自由ですね(やべーなコイツ)
867:デフォルトの名無しさん
21/05/30 13:29:49.69 7FUVn7Mh0.net
実力のある下級奴隷を抑え込むために中級奴隷は資格が欲しい?
868:844
21/05/30 14:09:05.31 Gk//zzeB0.net
資格を取れない香具師は、理解能力がない香具師が多い
企画書・規格書・文書などを読めない。
要求定義を出来ない。
客のニーズが分からないから、適切な提言ができない
客に言われた事しかできない。
客は素人だから、客に言われた事をやったら、ダメ
ちゃんと目的を聞いて、効率的な方法を提案しないといけない。
だから成功しているのは、文系のRuby on Rails ばかり
理系のPython をやってる香具師は、コミュニケーションが取れない。
まともに話・説明ができない
技術はどんどん変化するから、コミュ力・理解力・説明力が必要。
ずっと1人で、誰にも理解されない・訳の分からない事をやっている、理系の職人じゃダメ
軍隊で言えば、全員で意思疎通しながら、足並みを揃えて進行していかないといけない。
個人・独学では通用しない。
チーム力が重視される
869:デフォルトの名無しさん
21/05/30 14:32:33.23 +cXBE89D0.net
金バッチみたいなものか
870:844
21/05/30 14:58:39.30 Gk//zzeB0.net
論理力があるかどうかは、国語のテストで判別できる
幾つかの文章を、ヒントから正しく並べ替えるとか、
時系列や、原因・結果が逆になっていないかとか、
これは何を指しているかとか、
その時の主人公の気持ちを答えろとか
ここにこう書いてあるからこうですと、論理的に説明できないといけない。
どこにも書いていないことを、想像で答える問題ではない
だから、Rails をやるような文系女の方が、論理的。
Python をやるような理系男は、論理力が苦手だろ
871:デフォルトの名無しさん
21/05/30 16:05:08.30 ssDmNHo+0.net
> 864 が全然論理的じゃなくてワロス
872:
21/05/30 17:10:19.27 1jxmZkjx0.net
>>864
>論理力があるかどうかは、国語のテストで判別できる
まあ母語で思考力を試すのはわからないでもないのですが、
>幾つかの文章を、ヒントから正しく並べ替えるとか、
>時系列や、原因・結果が逆になっていないかとか、
>これは何を指しているかとか、
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
>その時の主人公の気持ちを答えろとか
そんな問題で思考力を試すのですか?あなたが思考力に乏しいことを露呈しているのではないのですか?
初等教育での問題設定は私にもよくわかりませんが、中等教育課程でなら、単に問題として適切なばかりか、教育訓練方法としても適切な手法はありますよ
それは英文和訳です。
翻訳レベルまでは求めませんが、目があり手があり内蔵があり手足があり五感があり感情・激情があり同じ食べ物を食べ同じ武器で怪我をし同じ行気にかかり同じく薬でなおり冬や夏には暑さ寒さを感じ針で刺せば血が出てくすぐったら笑う毒をもったらあっけなく死ぬるような同じ「人間」が書いたとは思えない訳文を私もよく書いたものです
873:デフォルトの名無しさん
21/05/30 17:38:07.40 4jG5kCp70.net
本当の気持ちは言葉にできないものだ
874:デフォルトの名無しさん
21/05/30 20:54:28.67 p+VrCgXk0.net
>>857
医者は職人で、学者じゃないからね
医者の実務を知らないやつほど
研究なんてやってる暇があると思ってる
875:デフォルトの名無しさん
21/05/30 20:54:47.64 p+VrCgXk0.net
>>865
同感
876:844
21/05/31 09:18:48.01 etoumxTf0.net
>>866
ちょうど昨夜のテレビ、東大合格ドラマ「ドラゴン桜」で国語をやってた
どの文章とどの文章が、等価・つまり同じ事を言い換えたものでしょうかとか。
結局、筆者の言いたかった事は何か? 要約しろとか
つまり、読解力とは理解能力
877:844
21/05/31 09:25:18.02 etoumxTf0.net
「走れメロス」を要約しろとか、「ドラゴン桜」の国語でやってた
友達を信じて待つ
878:844
21/05/31 09:35:25.57 etoumxTf0.net
「ドラゴン桜」では、
国語が出来ない・読解力が無いと、
題意を勘違いして、求められる回答を書けないなど、
すべての教科の点数が下がるから、国語が重要!
879:デフォルトの名無しさん
21/05/31 09:51:02.68 Tm9sROGBF.net
ドラコン櫻で教えてるのは「受験のテクニック」であって
論理学ではない
所詮漫画
テストの点は取れるようになるかも知れないが実際馬鹿な公務員が増えただろ?
880:デフォルトの名無しさん
21/05/31 09:53:41.48 O9N9c2eG0.net
そうなんだよな
塾とかの競争原理で実績を出さにゃならんから
本当の実力とは違う点数の取り方ってのがある
881:844
21/05/31 12:53:27.36 etoumxTf0.net
漫画だけど、塾を取材して、そのやり方を書いてる
例えば、塾では問題を解かない。
解いたり考えたりする時間が無駄だから
問題のパターンを教える。
1つの問題を解いている時間で、10個以上の問題のパターンを覚えられる
YouTube で有名な、雑食系エンジニア・KENTA のサロンと同じ。
学校・会社を取材して、必要な技術を選んでいる
Ruby on Rails 初心者用コースに、
Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
Docker Composeが出来ないと、採用されませんよとか。
考える要素などない。
競争に勝つ、勉強をしたか・してないかだけ
882:デフォルトの名無しさん
21/05/31 12:56:00.90 QwUa5xlW0.net
>>873
テストの点すら取れない真のバカよりはずっとずっとマシだよ
883:デフォルトの名無しさん
21/05/31 13:21:04.29 BBpqu8AM0.net
真のバカはテストの点のみならず両方ダメだから文字通りに「ずっとマシ」だろうけど
テストの点がとれない頭のいい奴を排除してしまうのが最大の問題だ
こういう場合は「(テストは)無い方がいい」になる
排除するのが目的なら真のバカは両方ダメだから排除できる
884:デフォルトの名無しさん
21/05/31 13:59:08.86 QwUa5xlW0.net
>>877
こと公務員についてのみ言うなら・・・
テストの点が取れないバカは不要だし
テストの点が取れるバカはハサミと同じく普通に使いでがある
テストの点が取れない天才は取りこぼしても大勢に影響はない
Cプログラマにはテストの点が取れない天才はいないので大丈夫
885:デフォルトの名無しさん
21/05/31 14:18:39.01 rigi+WDl0.net
学校の試験は、出題者の意図を読み取り期待する回答を書く能力を調べること
だから、社会に出てからその能力が役に立つ分野は限られている
886:デフォルトの名無しさん
21/05/31 14:46:22.19 O9N9c2eG0.net
試験で試すことのできる能力と
本当に必要な能力に「ズレがある」ってだけの話を
まったく違うと拡大解釈して
現実味のない極論を始める軽率なやついるよな
887:デフォルトの名無しさん
21/05/31 14:46:25.43 BBpqu8AM0.net
テストと現実が乖離しまくって大勢に影響出まくってんのが現状じゃないの
『天才』まで行かなくても『頭のいい奴』ていどでも
「テストの点が取れないちょっと頭のいいやつを取りこぼしまくると大勢に影響が出る」
そして一般大衆の頭の中では「テストの点が取れない⇒バカである」になる
『テストの点が取れる○○はハサミと同じく普通に使いでがある』このパターンと見分けがつかないからな
○○に何が入ろうがバカと判断されてしまい鼻毛切り程度の小さな仕事しか回ってこなくなる
888:デフォルトの名無しさん
21/05/31 15:00:06.82 O9N9c2eG0.net
どう乖離してるのか具体的に言えるか?
889:デフォルトの名無しさん
21/05/31 15:10:57.39 BBpqu8AM0.net
ズレがある=乖離してる、でしょ
すると、ズレがデカくなりすぎる=乖離しまくってる、になる
そしてズレがあると現実に影響が及ぶ
890:デフォルトの名無しさん
21/05/31 15:35:06.23 O9N9c2eG0.net
ほらな
抽象的なことしか言えない
案の定ってやつ
891:デフォルトの名無しさん
21/05/31 17:11:14.35 dxZCxWYyF.net
こっちの方が面白い
URLリンク(www.youtube.com)
892:デフォルトの名無しさん
21/05/31 17:12:54.07 BBpqu8AM0.net
ズレ=乖離だよ
ズレがありすぎるから問題なんでしょ
ズレがありすぎるのはまったく違うのとほぼ等しい
特に拡大解釈ではない
893:デフォルトの名無しさん
21/05/31 20:09:39.07 QwUa5xlW0.net
>>881
>テストの点が取れないちょっと頭のいいやつ
がどれだけいるのか定量的に教えてください
できれば、とりこぼしまくって大勢に影響が出た事例についてもお願いします
894:デフォルトの名無しさん
21/06/01 05:51:42.02 P/S2+Nob0.net
具体的に例を挙げろつってんの
ズレだの乖離だのの言葉の定義ではなく
895:デフォルトの名無しさん
21/06/01 11:04:18.90 kkYAvrn40.net
>>878で「大勢に影響はない」と言い切ったのはオレじゃねーぞ
お前だぞ
896:デフォルトの名無しさん
21/06/01 12:08:12.15 P/S2+Nob0.net
具体的に例を挙げろ
余計な無駄口は聞こえねえ
897:デフォルトの名無しさん
21/06/01 13:44:16.89 kkYAvrn40.net
ズレてるとか言ったのもオレじゃねえからな
>>880だ
898:デフォルトの名無しさん
21/06/01 15:23:06.69 Dbf622Mk0.net
出題者の意図を読み取り、期待する回答を書くのは、
社会のすべての事に関して重要
理解力・意思疎通・説明能力
これが無いと、客の意味を取り違えたりする。
ちょっとした技術自慢だけで、実は役に立たない典型的な馬鹿
技術自慢は転職でも、最も嫌われる
意思疎通できない香具師とか、
熱い志がないとか、その会社の製品・事業に興味がないけど、
技術自慢だけしに来る香具師
899:デフォルトの名無しさん
21/06/01 16:31:59.27 P/S2+Nob0.net
>>891
具体的に例を挙げろ
余計な無駄口は聞こえねえ
900:デフォルトの名無しさん
21/06/01 17:24:06.49 aPzpXp8H0.net
>>889
無いを挙げるのは悪魔の証明になるので
影響があった事例を教えて
901:デフォルトの名無しさん
21/06/01 18:04:43.83 qeHvspwIM.net
言い出しっぺはとっくにいなさそうだしこの話もう終わりにすれば?
902:デフォルトの名無しさん
21/06/04 01:41:15.92 n2NTEjZ40.net
>>852
#include <stdio.h>
int main()
{
puts("ぷ");
return 0;
}
903:デフォルトの名無しさん
21/06/04 01:43:19.30 oNV2u1VT0.net
なぜゼロを固定的に返すのか。
904:デフォルトの名無しさん
21/06/04 01:54:39.72 n2NTEjZ40.net
>>897
わかった。君だけは他の値を返すことを許す。
905:はちみつ餃子
21/06/04 01:55:33.20 Xsuyfl+R0.net
>>897
main で 0 または EXIT_SUCCESS を返すと
成功終了であることをホスト環境に (処理系定義の方法で) 通知するという仕様になってる。
ちなみに main に限っては return 文を省略すると 0 を返したことになるので
書きたくなければ省略してもいい。
906:デフォルトの名無しさん
21/06/04 02:05:38.62 3rxFsIot0.net
身は出しちゃ駄目
907:デフォルトの名無しさん
21/06/04 02:19:44.39 n50ApA7d0.net
>>899
あったなあ、そういう仕様。
main()では必ずexit(0)するコードとかあったっけ…
908:デフォルトの名無しさん
21/06/04 02:28:56.87 3rxFsIot0.net
exit()はmain以外でも使えるから便利w
909:デフォルトの名無しさん
21/06/04 02:29:12.39 oNV2u1VT0.net
>>896
なぜputs()のエラー判定をしないのか。
910:デフォルトの名無しさん
21/06/04 02:32:02.03 n50ApA7d0.net
>>902
やるな、ってw
longjump()使うとかせいw
911:デフォルトの名無しさん
21/06/04 04:19:06.21 bj0HIe9W0.net
longjmpのほうがよっぽどないわー
912:デフォルトの名無しさん
21/06/04 10:54:44.43 n50ApA7d0.net
>>905
まだまだ経験が足りんな
913:デフォルトの名無しさん
21/06/04 13:19:20.87 o4J1slTs0.net
inf main(void)
914:デフォルトの名無しさん
21/06/04 13:33:17.16 VPG/eawh0.net
フラグを返して呼び出し直後でif文、またフラグを返して、の繰り返しが
今まで何やってたんだろうというくらい、すっきりする
915:はちみつ餃子
21/06/04 14:38:58.11 Xsuyfl+R0.net
C++ の例外送出の実装方式にはいくつか種類があるけど、
sjlj と呼ばれる方式は setjmp/longjmp の略で C の setjmp と longjmp と同じことをしている。
(sjlj は移植性はあるがかなり遅いので実際には廃れ気味。)
逆に setjmp と longjmp で例外の真似をするという発想もわからんでもない。
ただなぁ、例外は例外で色々と問題をかかえているし、
後発の言語である Go や Rust がエラーを返却値で返す方式に回帰しているのを見ると、
こういうのでいいんだよこういうので……と近頃は思うようになった。
916:デフォルトの名無しさん
21/06/04 21:29:01.37 VPG/eawh0.net
C++の例外はイケてない
俺はそこそこのC++loverのつもりだが
ここはどうにも愛せない
C++98の動的例外指定をやめてnoexceptにしたおかげでマシにはなったが
まだまだ膿が出し切れてない
もうexceptionやめてnested_exceptionだけに絞った方がいいんじゃないかという気がしてる
あれこそ単一継承教の害悪の典型だろ
917:デフォルトの名無しさん
21/06/04 22:27:18.41 n50ApA7d0.net
>>909
まあその辺の考え方はわからんでもないけどね
ただ、一度longjmp()慣れたら、はっきりいって違和感はないし。
そもそもあちこちでexitするとか、それは昔のIBM系で悪名高い、
おかしくなったらABENDってのと何が違うんだよ、と思ってしまうので
それを考えるとね、exit()するくらいなら、longjmp()で制御戻して
出口一つにしとくようにしようよ、と思うわけさ。
問題って言っても、それこそANSIの最初の標準からあるわけだし。
918:デフォルトの名無しさん
21/06/04 22:51:54.40 n50ApA7d0.net
あと、もう一つメリット。
デバッガで動きを追うときに必ずsetjmp()の後ろにブレークを張っておく、と。
そすると、おおぅ、というような動きで異常終了とかでも、プログラムは落ちないから
グローバル変数くらいは確認できるw
919:デフォルトの名無しさん
21/06/04 23:18:26.41 HbomffeSM.net
それはexitにブレーク貼れば同じことできるのでは?
920:デフォルトの名無しさん
21/06/05 16:53:19.77 lg0pCfQ90.net
>>903
/)
///)
/,.=゙''"/
/ i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!!
/ / _,.-‐'~/⌒ ⌒\
/ ,i ,二ニ⊃( ●). (●)\
/ ノ il゙フ::::::⌒(__人__)⌒::::: \
,イ「ト、 ,!,!| |r┬-| |
/ iトヾヽ_/ィ"\ `ー'´ /
921:デフォルトの名無しさん
21/06/06 09:53:00.73 ZY57P3KvM.net
BSD, macOS, Linuxで動くgets_sの模範的実装下さい。
922:デフォルトの名無しさん
21/06/06 10:02:19.40 uVO5juz10.net
C++ならtemplate <typename charT, int N> charT* gets(charT (&ary)[N]);と
従来の使い方をそのまま残してサイズ渡せるんだけどな
923:デフォルトの名無しさん
21/06/12 11:53:46.28 3zqNVH/1M.net
BSP
924:デフォルトの名無しさん
21/06/12 18:43:44.02 QmJfg8OWF.net
res しない自由
925:デフォルトの名無しさん
21/06/14 20:39:15.79 b2JLFDmD0.net
C言語クイズ
void f(char **p) {
printf("%c\n", **p);
}
int main(void) {
char s[100];
f(&s);
return 0;
}
↑のコードは合法か否か?
926:デフォルトの名無しさん
21/06/14 21:11:18.60 zK/HfdvT0.net
>>919
違法です
927:デフォルトの名無しさん
21/06/14 21:28:44.78 QzrjrzJVM.net
実行犯は逮捕されます
928:デフォルトの名無しさん
21/06/14 22:16:38.04 q3ZquDHG0.net
法的にはアレだが感情的には(ry
929:デフォルトの名無しさん
21/06/14 22:43:48.58 JlQ40LV2a.net
>>919
行けそうな気がするけどダメなのか
char s[100];
じゃなくて
char *s = "abc";
ならオッケーなんだよね
930:デフォルトの名無しさん
21/06/14 23:17:08.16 stHhaeqd0.net
f() は char **p を受け取るようになってるからな。
p が指す先の *p が char * 型で、更にその先の **p が char 型になる。
931:デフォルトの名無しさん
21/06/15 00:41:45.66 uIngvlIz0.net
>>920-923
正解です
>>924
コンパイラ通してみるとわかる
ちなみに俺は今日までこの仕様を知らなかった( ゚∀゚)アハハ八八ノヽノヽノヽノ \ / \/ \
932:デフォルトの名無しさん
21/06/15 06:59:43.45 FhuU/vlv0.net
そもそも初期化されていない領域へのアクセスがアレなのでは
933:デフォルトの名無しさん
21/06/15 07:34:01.16 d2euf9Bx0.net
未だにchar**とchar(*)[100]の区別がつかないやつがいるのか
934:デフォルトの名無しさん
21/06/15 07:39:05.57 ul7dDyuz0.net
未初期化で不定なポインタではなく
指し先の実体が未初期化なだけなのでセーフということにしたい
935:デフォルトの名無しさん
21/06/15 07:51:57.42 d2euf9Bx0.net
union
{
char s[100];
char *t;
} u;
char **p;
p = &u.t;
printf("%c\n", **p);
とやってるのと同じで
*pつまりtが不定なのに逆参照しちまってるじゃねえか
936:デフォルトの名無しさん
21/06/15 08:28:39.63 WH9TaISq0.net
あれ? あれ?
937:デフォルトの名無しさん
21/06/15 09:50:49.77 Pt7e5czla.net
>>929
違う。
938:デフォルトの名無しさん
21/06/15 10:26:31.47 d2euf9Bx0.net
>>931
何が?
939:デフォルトの名無しさん
21/06/15 14:55:22.33 dTl1pSLYF.net
じゃあ別の問題
char s[100];
のとき
char *p = s; は ok
char **q = &s; は?
940:デフォルトの名無しさん
21/06/15 15:02:32.98 d2euf9Bx0.net
ダメに決まってんだろ
別の問題じゃねえじゃん
同じこと聞いてんなよ
941:デフォルトの名無しさん
21/06/15 15:03:48.90 d2euf9Bx0.net
通せるコードが知りたいの?
char (*q)[100] = &s;
ほれ
おまえさんがやりそうな
char **q = (char**)&s;
はコンパイルは通るが○はやれないよ
942:デフォルトの名無しさん
21/06/15 16:23:49.89 Ggb59cAP0.net
◯とか×とかの恣意的な答えじゃなくてじゃなくて仕様書読めないのがここの限界だよな
オレもだけど
未定義動作なんて又聞きでしかしらねぇや
943:デフォルトの名無しさん
21/06/15 16:43:11.36 uIngvlIz0.net
仕様書読んでる人なんか沢山いたじゃんこのスレ
今はいないの?
944:デフォルトの名無しさん
21/06/15 16:43:19.15 d2euf9Bx0.net
このへんを理解するのに規格票なんか読んでたら却って時間かかるよ
規格票は初心者が読むようにはできてないから
それよりポインタの基本をしっかり押さえていくと自然に答えに行き着く
実際、俺がそうだった
じっくり真剣な考察がいるからテキトーこいてるうちはわからない
いわばテキトーセンサーだ
945:デフォルトの名無しさん
21/06/15 16:43:29.10 Zky1caEs0.net
コンパイルで、警告が出るだろ
右折禁止って書いてあるところ無理に右折するから、捕まる
946:デフォルトの名無しさん
21/06/15 17:28:08.27 Zky1caEs0.net
配列sに初期値を入れておかないと表示出来ません
int main(void) {
char s[100]={'a'};
char *p=&s[0];
f(&p);
return 0;
}
947:デフォルトの名無しさん
21/06/15 22:57:25.73 v+13MMUQa.net
配列とポインタは交換可能な場面が多いけど、結構融通が利かないことが多いですね
そもそもの >919 は定数の s を変数に適用しようとするからダメなのかな
しばらく C をやってないから、すっかりピンとこなくなってしまった
そもそも、こんな紛らわしい、クイズになるような記述はしないけど…
948:デフォルトの名無しさん
21/06/16 00:39:49.95 QUFt1TkX0.net
sのアドレスを関数に渡した場合は、
受けとった側がこのアドレスをchar型の要素数100の配列として操作する必要がある。
これは関数f()のプロトタイプである、ポインタのポインタとは違う物である。
コンパイルしたときの警告をよく読んでみよう。
949:デフォルトの名無しさん
21/06/16 16:30:37.87 uJQ6HHCXF.net
char s[100];
のときの
s と &s[0]
上の二つと &s の違い
950:デフォルトの名無しさん
21/06/16 20:00:03.68 kgg3yKk+0.net
アセンブラ「?」
951:デフォルトの名無しさん
21/06/17 02:32:09.07 JsrG75zva.net
>>919
語弊があるかもしれないけど、
関数 fは charへのポインタの配列(ポインタ)を受けようとしていて、
呼び出し側はcharの配列への参照(ポインタ)を
渡そうとしているんだよね
952:デフォルトの名無しさん
21/06/17 11:15:04.23 SWOKbVD80.net
char **p は 「charへのポインタの配列」 ではないよ
int main(void) {
char s='a';
char *p=&s;
f(&p);
return 0;
}
953:デフォルトの名無しさん
21/06/17 11:32:48.85 qVo1n1YK0.net
ポインタ=配列と思い込んでいるときの症状だな
char s[100];
char *p = s;
assert(sizeof s != sizeof p);
954:デフォルトの名無しさん
21/06/17 12:21:59.90 u4WNkp++0.net
C言語には一応配列型があるんだっけ?
ほとんどポインタと同義で扱えるから分からんだけらしいが
955:デフォルトの名無しさん
21/06/17 12:27:26.73 PisvSOwJa.net
>>946
その通りです
なので、語弊があるかもと書きました
main の第2引数を
char *argv[]
char **argv
のいずれにもできるアレです
Cには配列型はないので
956:デフォルトの名無しさん
21/06/17 12:34:26.88 qVo1n1YK0.net
> Cには配列型はないので
ある!
char s[100];
これが配列型だ
957:デフォルトの名無しさん
21/06/17 12:55:46.07 PisvSOwJa.net
たしかに配列ですけど、配列型なのかな
自分もちょっと理解があやしいので…
誰か男の人来て~!!
958:デフォルトの名無しさん
21/06/17 13:09:37.10 qVo1n1YK0.net
「型」とは何だと思う?
こういうのは型で、こういうのは型じゃない、という境界を示せるか?
959:デフォルトの名無しさん
21/06/17 14:03:32.36 4qObO6qj0.net
rui_ueyamaのコンパイラ入門だと配列型とポインタ型は別々だって言ってたよ
960:デフォルトの名無しさん
21/06/17 14:06:34.50 qVo1n1YK0.net
951が言いたいのはこういうことか?
typedef char T[100];
T s; //これなら型だ
T s[100]; //これは型なのかな
961:デフォルトの名無しさん
21/06/17 15:31:45.57 YvA5lG3W0.net
型って言うと普通はintとかfloatだよね
配列型っていうか「int型の配列」と表現することはあるけど
962:デフォルトの名無しさん
21/06/17 15:48:44.73 Cedau++pM.net
基本型(数値型と文字型)と集成体型(配列と構造体)とポインタ型
963:デフォルトの名無しさん
21/06/17 16:05:49.23 LpiEWNiEM.net
型はintとcharとfloatとdouble等
配列はその型を[100]みたいに指定した固定数だけ宣言して使えるようにしたもの
ポインタは指定した型のメモリ上の場所だけを指し、*allocでサイズが変えれる
配列もメモリの場所を示すポインタで参照はできるがサイズは固定
で覚えた
964:デフォルトの名無しさん
21/06/17 16:13:28.27 qVo1n1YK0.net
>>955
キーワードのみで指定される型は基本型(basic type)だ
6.2.5 型 オブジェクトに格納した値又は関数の返す値の意味は,それをアクセスするのに使われる式の型(type)によって決定する。(オブジェクトとして宣言された識別子は最も単純な式とし,その型は識別子の宣言において指定された型とする。)型は,オブジェクト型(object type)(オブジェクトを完全に規定する型),関数型(function type)(関数を規定する型),及び不完全型(incomplete type)(オブジェクトを規定する型で,その大きさを確定するのに必要な情報が欠けたもの)に分類する。
965:デフォルトの名無しさん
21/06/18 13:25:25.10 askuiBap0.net
>>958
なるほど
966:デフォルトの名無しさん
21/06/18 14:20:34.01 askuiBap0.net
あ、ほんとだ
規格書見たら普通に配列型と書いてあるね
知らんかった
ネットで検索しても「配列型」は引っかからないけど
967:デフォルトの名無しさん
21/06/18 14:36:30.74 askuiBap0.net
>配列型(array type)は,要素型(element type)と呼ぶ特定のメンバオブジェクト型をもつ空でないオブジェクトの集合を連続して割り付けたものを表す(36)。配列型は,その要素型及び配列の要素の個数によって特徴付ける。配列型はその要素型から派生されるといい,要素型がTの場合,配列型は“Tの配列”と呼ぶ。要素型から配列型を構成することを“配列型派生”と呼ぶ。
「Tの配列」という表現は「配列型」と同義なのか、勉強になった
968:デフォルトの名無しさん
21/06/18 15:24:35.28 AVf6Ht590.net
配列が型でなければ、sizeof int[4]とか、(char (*)[4])ptrとか書けないからね
969:951
21/06/19 00:09:10.43 zB4v1zpja.net
では、cには文字列型があるといえるのかな
970:デフォルトの名無しさん
21/06/19 00:14:04.98 MQWrKSb70.net
関数の引数で
void func(char s[][10])
なんて書き方をすると配列型をちょっと実感できる。
971:デフォルトの名無しさん
21/06/19 00:14:26.03 8xkixJIf0.net
>>963
charの配列を文字列として扱うよ
972:951
21/06/19 00:20:12.06 zB4v1zpja.net
いや、規格書に書いてあるのだから、私の間違いでした
すみませんでした
973:デフォルトの名無しさん
21/06/19 00:48:51.22 AhXAE8oj0.net
NUL終端していないchar配列はただの配列
974:デフォルトの名無しさん
21/06/19 05:43:30.69 MQWrKSb70.net
飛ばない豚はただの豚
975:デフォルトの名無しさん
21/06/19 17:04:29.32 zDrgWeBeF.net
void func(char s[][10])
は嫌い
void func(char (*s)[10])
じゃいかんの
976:はちみつ餃子
21/06/19 17:34:38.67 /f53/cxR0.net
>>969
意味は同一。
仕様上の意味付けとしては後者がまずあって
前者はその構文糖という位置づけ。
977:デフォルトの名無しさん
21/06/19 17:54:37.68 BH9bYKW90.net
初心者を救済すべく用意された構文糖が
結果的に初心者を陥れる陰険な罠になっているという皮肉
978:デフォルトの名無しさん
21/06/20 06:40:26.90 vSgOvpHd0.net
少なくともCのシンタックスシュガーは熟練者がタイプ数を減らすためのものであって初心者を楽させるものではない気がする
979:デフォルトの名無しさん
21/06/21 15:18:17.55 os4CEfZ3F.net
こんなところでCが中途半端に出来るだけが自慢の専門卒みたいな連中に尋ねるよりも
大学の先生かチューターの院生に尋ねた方がいいだろう
進みたい研究室があればそこに行って訊くと
980:良い
981:デフォルトの名無しさん
21/06/21 20:27:45.83 yU7HyP9W0.net
院生以下のゴミw
982:デフォルトの名無しさん
21/06/21 23:06:35.04 jHz8GYW10.net
// b.c
int b[] = {123, 456};
// a.c
#include <stdio.h>
int a[] = {123, 456};
int main()
{
extern int *b;
printf("val b\n");
printf("%d\n", *(b + 1));
// printf("val a\n");
// printf("%d\n", *(a + 1));
return 0;
}
こういう分割ソースをコンパイル、リンクして実行すると、何も表示無しで終了する
デバッガー使って実行してみると、SEGVになってる
分割せず、コメント部分のaの表示だけにすると、動く
院生の人、何故かを説明して
983:デフォルトの名無しさん
21/06/21 23:10:51.91 imPHrgSTa.net
こういうの、昔 柴田何某のポインタ本で勉強したけど、みんな忘れたな…
984:デフォルトの名無しさん
21/06/22 02:41:53.17 UBIESj0w0.net
extern int b[];にすると動いたから配列型とポインタ型の違いっぽい
985:デフォルトの名無しさん
21/06/22 06:19:00.39 jiZrgPwV0.net
配列とポインタを混同するなと教えるときの典型的なサンプルだね
986:デフォルトの名無しさん
21/06/22 22:30:25.89 dO7B5XH7a.net
外部りんけーじだと、bのメモリに配置されているのが値なのかポインタなのか分からないからかな
この場合、使用側はbに配置されたのがポインタと決めつけてるけど、実態は値だから?
987:デフォルトの名無しさん
21/06/23 00:13:40.21 4uPMP2M7M.net
int b[] = {123, 456};
*b で期待されるのは b=&123;
b[] で期待されるのは b[2]={123,456}
b[]の中身をスタックに積んだ後に*bの場合必要ないからextern更新して無いんじゃね?
988:デフォルトの名無しさん
21/06/23 05:17:30.22 m16dmNKT0.net
現象としてはコンパイル後のアセンブリを見ればいいけど, 一般論としてはODR違反だからどう扱おうがコンパイラの自由だとしか
989:デフォルトの名無しさん
21/06/23 06:27:58.72 rIfoeFmJ0.net
>>980
ここはCスレなのでCで表現してくれ
オレ語じゃわからん
990:デフォルトの名無しさん
21/06/23 12:05:27.59 qvRJvNKF0.net
>>982
アホは無理して答えなくていいぞ
991:デフォルトの名無しさん
21/06/23 12:26:06.31 5TaXVwksM.net
extern int *b; じゃスタックに何も積んだりしないしどう見ても>>980がアホなんですが
992:デフォルトの名無しさん
21/06/24 12:32:06.50 OZF9neOD0.net
>>983
自己紹介乙
993:
21/06/24 19:56:26.10 i6kIKJxB0.net
>>980
>&123
お前、何をいっているんだ?
ちゃんと日本語とC言語で記述しろ、馬鹿、死ね
994:デフォルトの名無しさん
21/06/24 20:21:39.46 y6Bfeav/M.net
じゃあ
b&=123;
でお願いしまつ。
995:デフォルトの名無しさん
21/06/24 20:45:24.69 alz36GlD0.net
ビットandしながら代入
996:デフォルトの名無しさん
21/06/25 15:41:59.61 rcGmQQfw0.net
2進で 0111 1011 か
マスクでありそうなパターンだ
997:デフォルトの名無しさん
21/06/25 17:37:21.28 +QaNJXlp0.net
127より4小さい数か
998:デフォルトの名無しさん
21/06/25 19:59:22.30 jSzR7q5R0.net
ビット and ラーン
999:デフォルトの名無しさん
21/06/25 23:07:19.68 crztuVLoM.net
(int)123を.data sectionに置きアドレスを取得する方法。
1000:デフォルトの名無しさん
21/06/26 02:00:51.59 RjjpcdnV0.net
int a[] = { 123 };
って初期化すれば a が (int) 123 の入っている先頭アドレスになる。
もちろん *a が作られたわけではないので a に対しては代入できない。
あくまでも a を使おうとすると 123 の入っているアドレスに置き換わるだけ。
1001:デフォルトの名無しさん
21/06/26 07:06:52.87 MV3qzcHy0.net
キャストしなくても元々intだろうが
1002:デフォルトの名無しさん
21/06/26 14:00:05.06 RjjpcdnV0.net
気分の問題。
1003:デフォルトの名無しさん
21/06/28 09:33:23.09 so+vl3vs0.net
printf("%d", sizeof (char)123); とやろうとしたら
キャストのカッコがsizeofのカッコと解釈されてエラーになるのな
printf("%d", sizeof((char)123)); ならおkなんだけど
なんだか気持ち悪い
1004:デフォルトの名無しさん
21/06/28 10:13:18.97 x/UkG1ge0.net
>>996
sizeofって括弧なしで使えるの? 知らなかった
1005:デフォルトの名無しさん
21/06/28 10:20:43.69 WejOUFlX0.net
>>996
sizeof演算子の優先順位はcast演算子の優先順位より高いので、括弧がないと
まず最初にsizeofと数値リテラルが評価されてその後でその結果をcastで評価するという
おかしな状態になるのでエラーになったのでは?
1006:デフォルトの名無しさん
21/06/28 10:38:03.51 so+vl3vs0.net
sizeofとキャストはどちらも単項式なので右から結合するはず
にも関わらずキャストが先に読まれないので気持ち悪いと言ったんだ
字句解析と意味解析ってことかな
1007:デフォルトの名無しさん
21/06/28 11:05:48.75 HW6dR9O/0.net
そもそも
sizeof (char)
だけでいいものをそう記述してるのが気持ち悪い。
1008:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 272日 20時間 24分 19秒
1009:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています