C言語なら俺に聞け 156

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 9bb7-/QqT)
垢版 |
2020/09/28(月) 14:41:30.00ID:QxfbhGyV0
!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
676デフォルトの名無しさん (ワッチョイ a77c-rvE3)
垢版 |
2021/01/27(水) 12:12:51.81ID:cJSBZXf90
>>663
常にHALT+割り込みのみで書かれたものはあったはず
2021/01/27(水) 12:27:46.11ID:gQSND64l0
>>675
その理由もあるけどスタックの見積がやりにくいからという理由もある
>>661に類似だけど停止条件トチッたら容易にスタック食いつぶすし
2021/01/27(水) 13:33:58.28ID:vpj9vmrAd
>>662
貧乏マイコンは数段程度しかないから関数の中で関数呼ぶのすら危うかったりするな…
高級マイコンは16段の見たことあるが
2021/01/27(水) 13:57:29.31ID:DAR3YVvc0
HALTと割り込みでもいつかはどこかで最初からの繰り返しループにならない?
割り込み中でステート管理して、スタックを操作して最初に戻るとか?
出来ないマイコンもありそうだけど
2021/01/27(水) 14:01:16.93ID:N60gZ7990
そういう制御込みでコンパイルして吐き出してくれるなら Cの選択肢もあるだろうけど
それが期待できないとなると アセンブラしかない ってことになるのかな
2021/01/27(水) 17:35:31.51ID:6jCnxoTKd
>>678
PICでしょ
一番安いヤツはハードウェアスタック2段
2021/01/27(水) 17:36:57.11ID:6jCnxoTKd
>>679
手段は色々あっても
ループはループ
と思う
2021/01/27(水) 20:45:42.53ID:gQSND64l0
>>679
まあどこかでループは必要だわな
>>661はそういうループはきっちり検証して個々の処理ルーチンではループ禁止っていう話かと
2021/01/27(水) 23:07:06.58ID:7vi5L3Y30
初心者です
変数に&を付けてメモリのアドレスを表示させるプログラムを実行して(0x7efe61e298d8←こんな感じ?)
その後1時間とか経過して別のプログラムでメモリ「0x7efe61e298d8」に格納されたものを表示させることってできるんですかね?
2021/01/27(水) 23:11:59.94ID:fhlKtwwY0
OSが何かにもよるけど
一般論としては出来る。出来るが、
成功するかどうかは分からない
2021/01/27(水) 23:34:48.42ID:XppLd9do0
MS-DOSのTSRか
2021/01/27(水) 23:52:57.86ID:7vi5L3Y30
C言語というよりOS側の問題なんですね
ありがとうございます
2021/01/28(木) 05:11:34.57ID:52TUUvk80
>>681
それ、スタックを使って構造化プログラミングを実現した言語であるCを使う利点が一切ないような…

組み込み/マイコン向け言語でスタックを使わず構造化プログラミングを実現するにはcpsスタイルの言語がベストなはず、lisp方言schemeにはそれ向けのサブセット仕様もあるし、ホビー界隈ではそこそこ使われてる模様
(但し主なpc向け実装は、アーキテクチャに合ったスタックによるcps実装が多い、念のため)

forthも消えてしまったなあ
C換算百行未満でブートストラップ&セルフホスト処理系が書け、OS機能も兼ね、規格にあるライブラリ関数も改変無しコピペで動く移植性の良さ
c台頭までは組み込み/マイコン界隈を寡占してたんだが
ちゃんとスタック指向&構造化言語だけど、ハードウェアスタックに頼らないので相性がよい
唯一の敗因はlisp以上に深淵なことだな…

cは既に国際語になってしまったので、取り敢えず分かるcで書く、ってのがcが使われる唯一の理由だと思う
2021/01/28(木) 05:58:13.87ID:pfPCg+P40
動的確保なしの32ビットマイコン使って飯食ってるけど、さすがに再起は使わんが、
好きなだけ関数呼び出し深く出来るだけでも恵まれてたんだな。スタックオーバーフローは一応気にしないといかんけど。

ミッションクリティカルなコードなんてゼッテー無理だわw Adaとか使われるんだっけ?と思ったら微妙に廃れ気味なんね。よーしらんけど。
2021/01/28(木) 08:01:19.64ID:Z02UUfjqK
>>684
たぶん意味がない。
今時のOSでは、別々のプログラムからメモリ「0x7efe61e298d8」を参照しても同じ内容にならない。「仮想アドレス」でぐぐれ。
プログラム間で変数をやりとりしたければ、共有メモリを使う方法がある。
2021/01/28(木) 08:05:06.42ID:c7JCU6ma0
今時のOS,CPUだとアクセスした瞬間に例外発生する
2021/01/28(木) 10:46:55.99ID:vBYpvnJx0
>>684
(現代的なコンピュータアーキテクチャでは) 各プロセスのアドレス空間が独立していて、
あるプロセスから見えているメモリの内容と他のプロセスから見えるそれは別物なんだよ。
他のプロセス (が持っているリソース) にアクセスしたりデバイスをコントロールするには
OS に依頼して仲介してもらうという形をとる。

プロセス間でメモリの共有をすることも可能だが、
それもあらかじめ OS に伝えて共有する実体 (物理メモリ) をそれぞれのメモリ空間にマッピングしてもらう形
なので、それを利用するプロセス同士が事前に共有に同意した状態である必要がある。

あるプロセスが自分用に割り当てられたリソース以外にはそう自由にはアクセスできないんだ。
それがセキュリティというものだよ。
693デフォルトの名無しさん (ワッチョイ 275f-rvE3)
垢版 |
2021/01/28(木) 11:01:24.92ID:dNWrUHbO0
>>682
毎回リセットして最初から実行するのも君の説ではループの範疇だな
694デフォルトの名無しさん (ワッチョイ 275f-rvE3)
垢版 |
2021/01/28(木) 11:03:43.19ID:dNWrUHbO0
>>690
>>692
DLL injection とかしても無理?
2021/01/28(木) 11:57:56.44ID:vBYpvnJx0
>>694
アクセスされる側にとって (普通は) 意図しないものであるには違いないけど、
一応は OS が許可した上で各プロセスにアタッチする形なので
ひとつのプロセス内でのことになるから別のプロセスからアクセスするのとは理屈が違うんじゃないかな。

プロセスの独立性は壊れないし、権限が上位のプロセスにはアタッチできないんじゃなかったっけ?
まあときどき権限昇格の脆弱性が発見されたりはしてるけど……。
2021/01/28(木) 12:14:49.58ID:eBfsAdOM0
>>684
デバッガでも作りたいのか?
2021/01/28(木) 12:16:47.81ID:Tpt+oTXId
>>693
そうだね
ソフトによるリセットなら本質的にはソフトループと変わらない
2021/01/28(木) 19:47:55.90ID:4gHVOrOA0
>>671
クラシック系の耳にはすごく斬新に聞こえますが、世間一般的には簡単な部類に入るのですか、私は井戸の底の蛙だったんですね‥‥
2021/01/28(木) 19:50:41.53ID:4gHVOrOA0
>>686
TSR はロマンで私もキー入れ替えとかいろいろ凝っていた時期があったんたけど、TSR に似たプログラミングって最近はなんですか?
2021/01/28(木) 19:51:53.47ID:4gHVOrOA0
>>692
でも、i386 アーキテクチャの「コールゲート」とかは廃れてしまったんですよね…‥
2021/01/28(木) 20:19:09.21ID:Sg/ycOHU0
WaveToneとかの便利なソフトがあっての
2021/01/28(木) 22:08:52.27ID:4gHVOrOA0
>>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
2021/01/29(金) 00:08:49.78ID:BmYQVI6m0
>>698
斬新に聞こえるかどうかはともかく
コード自体は非常に簡単

ちなみに私もクラシック系
704デフォルトの名無しさん (エムゾネ FF0a-qCTK)
垢版 |
2021/01/30(土) 12:01:56.26ID:EWZvTk3zF
>>702
404
2021/01/31(日) 19:33:07.61ID:jQyDM6Cn0
enum A
{
max_value = 0x7fffffffffffffffLL;
};

こんなことしても64bitのenumはつくれないんだっけ?
2021/02/01(月) 00:52:02.23ID:5yr9aQzL0
整数型ならいいらしいから、64bitになるコンパイラがあっても規格違反ではないと思う
2021/02/01(月) 01:29:58.21ID:OjiuyGRS0
infinity 定義されてるだろ?
2021/02/01(月) 07:03:50.51ID:v6ebtUL10
整数型に?
2021/02/01(月) 07:51:42.98ID:9cKOvUYE0
>>706
処理系依存しないで確実に64bit以上にする方法ってないんだっけ。
ベース型の指定はC++だよなあ。
2021/02/01(月) 08:04:18.96ID:SoQHgLGL0
64bit整数型がない環境があるんだから
確実に64bit以上なんて無理
2021/02/01(月) 08:15:50.49ID:v6ebtUL10
sizeof max_value
gcc, clang: 8
cl: 4
2021/02/01(月) 08:27:26.16ID:9cKOvUYE0
>>710
じゃあ「64bit整数が使える環境で」って条件だとどうだろう?
2021/02/01(月) 09:03:50.04ID:5yr9aQzL0
Cのenumはマクロと大して変わらんのだから、マクロで代用するとか
2021/02/01(月) 09:11:58.71ID:v6ebtUL10
マクロに代わるべく作られたenumがマクロで代用されるとは
無様な・・・
2021/02/01(月) 09:18:04.19ID:v6ebtUL10
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になる余地は全くない
2021/02/01(月) 11:57:56.06ID:vkxM9MCda
intとlong longが同一の可能性は残る
まぁ普通ではないが

素直にC++でenum classにするのがいいのでは
717デフォルトの名無しさん (エムゾネ FF0a-qCTK)
垢版 |
2021/02/01(月) 14:28:14.54ID:fos4FOVOF
enum と enum class って紛らわしいよね
2021/02/01(月) 17:41:32.38ID:v6ebtUL10
enum classは関係ない
enum-baseだ
2021/02/01(月) 19:37:32.66ID:vkxM9MCda
>>718
enumのベース型ってenum classじゃなくても出来たのか
勘違いしてたわ
2021/02/01(月) 21:43:21.53ID:9cKOvUYE0
>>715
なるほど、ありがとう。
721デフォルトの名無しさん (ワッチョイ 9e8c-bY9K)
垢版 |
2021/02/02(火) 06:19:12.09ID:wjKGtX300
enumはステート制御で重宝する。
722デフォルトの名無しさん (ワッチョイ 5dd2-merL)
垢版 |
2021/02/02(火) 15:29:55.49ID:gtWVIswm0
質問です。__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;}
よろしくお願いいたします
2021/02/03(水) 08:08:40.40ID:3ZiqWZ4T0
>>712
処理系依存
2021/02/04(木) 11:24:59.43ID:P1e/f4pz0
テキストファイルを読み込む場合、主にfgetsやfgetcでやる方法があると思うのですが調べてみるとmmapを使う方法もあるようなのですがどれを使うのが良いんですかね?
やりたいのはhtmlソースの書かれたテキストファイルの簡単な解析です
もしくは全く別に有名なライブラリみたいなのがあるんでしょうか?
2021/02/04(木) 12:15:35.04ID:ttCVH4wp0
>>724
大きなファイルに細かなランダムアクセスが発生するときは
シークを繰り返すよりも mmap を活用した方が有利になることもあると思うけど、
常識的に考えればひとつの html はせいぜいが数メガ程度だろうし、
凝った管理をしなくても全部メモリに乗るでしょ。
2021/02/04(木) 13:31:56.12ID:P1e/f4pz0
>>725
ファイルサイズで使い分ける感じなんですね
ありがとうございます
2021/02/04(木) 13:43:25.23ID:ttCVH4wp0
>>726
処理の内容によってプログラムのデザインには選択肢があって、
ファイルからの読み込みの仕方はそのデザインに付随するという感じ。
2021/02/04(木) 14:20:09.93ID:jgksMTX2d
C言語スレで
せいぜい数メガと言っちゃう感覚
729デフォルトの名無しさん (ワッチョイ 6aa5-eHoJ)
垢版 |
2021/02/04(木) 14:24:26.67ID:xGlwnT6u0
もう21世紀だからな
ここから先は1GBのテキストファイルが普通になる
2021/02/05(金) 07:55:44.29ID:I+zADhcc0
>>728
テキストファイルを読めてhtmlをパースするような機器で今どき数メガも載ってないケースってかなり珍しいだろ
2021/02/05(金) 08:01:49.33ID:XbPEadHi0
せいぜい数メガと言えるようなリッチな環境で
C言語でアプリを書く方が珍しいだろ
2021/02/05(金) 08:20:44.95ID:JqQJ/dMo0
>>731
質問者>>724がやりたいって言ってるんだから、珍しいかどうかなんてどうでもいいだろう
2021/02/05(金) 08:32:27.83ID:XbPEadHi0
せいぜい数メガと言えるようにリッチな環境かどうかなんて
>>724にしかわからないわけだけど

>>731を考えたらリッチじゃないって考えるのは自然な発想
2021/02/05(金) 08:42:07.98ID:oeXhrntJ0
「決めつけ」はバグとセキュリティホールの元。
2021/02/05(金) 09:02:30.99ID:AjJLCZmld
スパコンのOSはCで書かれている
2021/02/05(金) 09:20:14.53ID:I+zADhcc0
>>731,733
なぜC言語なのかは>>724に聞いてくれ
少なくとも今どきmmapまで使える環境でメガも乗ってない環境って相当珍しいだろって話な
2021/02/05(金) 12:39:42.10ID:1XmQmKI8d
>>736
>>734
2021/02/05(金) 12:52:09.08ID:AV0Gp17OM
>>737
珍しくないと言うなら実例をあげればいいだけ
739デフォルトの名無しさん (ワッチョイ 9fad-MLSE)
垢版 |
2021/02/06(土) 10:12:48.76ID:DFt8vUVO0
mmapってUNIX系OSだけでは?他にもあるかも知れないが互換ライブラリ経由でそのOS固有の同機能のやつ呼んでたりしない?(それで良いなら良いんだが)
2021/02/06(土) 10:51:00.80ID:PohEB++tF
対象をhtmlに限定したのが敗因
2021/02/06(土) 11:26:44.70ID:EjDQT0l8K
>>739
メモリマップトファイル一般を指しての発言じゃないかな、CreateFileMapping()とか含めて。

>>740
たぶんシーケンシャルアクセスで足りるから、read()でええやんってなるよな。
2021/02/06(土) 11:45:50.67ID:zn5WrP4C0
>>739
何が問題なのかよくわからんが?
743デフォルトの名無しさん (ワッチョイ 6f8c-w83u)
垢版 |
2021/02/22(月) 07:04:45.29ID:Xbe4DE+80
どうやったらループを小さくしたり無くしたり出来るのか教えてほしい。
2021/02/22(月) 08:02:42.93ID:NYs90WT8M
べた書き?
printf("hello flat!\n");
printf("hello flat!\n");
printf("hello flat!\n");
2021/02/22(月) 17:21:30.68ID:iIDQLaUs0
標準ライブラリにある処理はなるべく標準ライブラリのを使うとか
ループをまとめて関数に出すとかでいいんじゃないの?
根本的な解決にはならないかもだけど複雑度は下がる
あとはアルゴリズムの改善しかないんやない
2021/02/23(火) 02:48:11.51ID:VIkkm8/qd
>>739
実装は知らんがむしろwinでは頻用すると思う
80'後半くらいに生まれたそろそろ古参なスクリプト言語(Pythonなど)には大体ある
スクリプト故に富豪的に全部載せ
2021/02/23(火) 03:04:42.97ID:VIkkm8/qd
>>743
ループ変数をi, j, kとすれば、int ijk(範囲はi*j*k)とまとめればネストレベル3→1にできるよ
i = ijk/j/k
j = ijk%(j*k)/k
k = ijk%kね
パフォーマンスの利点もある
mo量子化学計算はナイーブには最低4段のforが要求されるんで、かなり重宝
なんで4段をcollapseしたいけど、他人が初見で解釈するのはちょっと無理強いなので控えてる
2021/02/23(火) 03:15:27.68ID:VIkkm8/qd
いや今書いたのも改めて並べるとmodに慣れていと1分くらい考えるか…
二段は簡潔なのでイディオムとして使って良いと思う
i*jを走るループ変数ijに対し、i==ij/j, j==ij%j
ネストは半分になるし可読性もよいので、多分ベストプラクティス

ネストしたループを全てワンライナーで書けるFortranが羨ましい
2021/02/23(火) 03:42:44.91ID:1ia+Vnu00
divもmodもクソ遅いと思うんですがそれは
2021/02/23(火) 04:31:33.75ID:VIkkm8/qd
>>749
ステップ数で考えてたからそういう視点は無かったかも、精々2倍程度だし見落としてた

-o3とかするとベンチ的には速いから最適化とか効いてるんだろうかね?
2021/02/23(火) 04:35:35.49ID:VIkkm8/qd
だからといってわざわざ速い最適化divmod拾ってくるまでの価値も無いし、つまらんハックか
猛省
2021/02/23(火) 08:24:27.89ID:NtDnGIIYK
まあ定数の割り算は掛け算で実装するよな
2021/02/23(火) 12:00:01.73ID:EYNng8zFd
>>752
今アセンブリ見てみたら2147...647=2^32-1を引いて頑張ってる様子が見えた!gcc -O3/win
色々パラメータ弄って様子見ようとしたら普通に割り出したので混乱したが、実行時に与えるとフォールバックするよう
コンパイル時に定数で与えたらそうするっぽい
勉強になった
2021/02/23(火) 12:21:23.56ID:1ia+Vnu00
目安でしかないがx86-64ではmulと比べてdivやmodはレイテンシ2倍どころではない場合が多い

https://www.agner.org/optimize/instruction_tables.pdf

パフォーマンスが重要な場合は除数を定数にするか2の冪にしてシフト/論理積にする
755デフォルトの名無しさん (ワッチョイ 6f8c-Dcdc)
垢版 |
2021/02/24(水) 15:46:51.63ID:/D2VYVJH0
ソフトウェア割り込みプログラムは書けるのか
756デフォルトの名無しさん (ワッチョイ a301-GD1z)
垢版 |
2021/02/25(木) 06:12:34.32ID:R7WVwVFS0
>>755
インラインアセンブラ必須かな
2021/02/25(木) 07:07:20.11ID:bxBNuN1v0
環境次第
組み込み系の処理系だと割り込みハンドラーを書けたり割り込みフラグの制御ができたりするのはよくある
758デフォルトの名無しさん (ワッチョイ a301-GD1z)
垢版 |
2021/02/25(木) 09:55:57.73ID:R7WVwVFS0
>>757
それはC言語仕様には無い特殊な命令。SHのCコンパイラとか。
2021/02/25(木) 19:11:28.17ID:k63j55rm0
VCで作った実行ファイルを
cgiファイルに変える方法て
わからない?
どうしてもc.cgi.exeになって
しまう
2021/02/25(木) 19:17:09.21ID:JLHf2OjdM
>>759
どのHTTPサーバか、どんな設定にしてるかにもよるけど
名前だけ変えればおkじゃねーの?
2021/02/25(木) 20:00:24.23ID:MOr3wCfr0
ファイル名変えておいとくだけなんとちゃうの?
2021/02/25(木) 20:06:31.57ID:ZW7ncKwI0
Windows系サーバーだったら、
実行ファイルc.exeをc.cgiにリネームすれば動くはず
2021/02/25(木) 20:47:45.34ID:yh+1kBamK
そもそもCの話じゃないんだが
>>759
エクスプローラの表示の設定を「拡張子を表示する」モードにすべし

「拡張子を表示しない」のチェックを外す方式だったかもしれん
764デフォルトの名無しさん (ワッチョイ cb01-jB1a)
垢版 |
2021/02/26(金) 03:45:13.89ID:5d4w5oMJ0
>>763
スレチ
2021/02/26(金) 06:57:40.05ID:eCf8RuSVK
//何だよ俺のせいかいw
//じゃせいぜいCだけででがんばりや
#include <stdio.h>
int main() { return rename("c.cgi.exe", "c.cgi"); }
2021/02/26(金) 08:02:43.73ID:M2eccXrmd
renameってstdio.hだっけ?
2021/02/26(金) 09:51:30.74ID:31AFaQsJ0
>>766
stdioじゃよ
2021/02/26(金) 12:12:32.73ID:M2eccXrmd
げ、本当だ
2021/03/15(月) 16:52:25.12ID:XyNDIUjTa
すみません、質問させてください

exturn FUNC(void, define1) 関数名(void)

ってなってるのが、関数のプロトタイプ宣言であることは理解できているのですが
FUNC()の意味が分からないです
define1にはキーワード定義だけされたdefineが入ってます
2021/03/15(月) 17:06:32.77ID:Db4OPSpGM
>>769
それはC言語の文法じゃなくて、あなたのプロジェクト固有のマクロなので、同僚に聞くかgrepしてください
2021/03/15(月) 17:07:39.42ID:XyNDIUjTa
>>770
ですよねー
もう聞くわ
2021/03/16(火) 08:22:50.63ID:7emEuadh0
Cの文法内に収まる FUNC() って

一般C
#define FUNC(ret,opt) ret
Microsoft系のやつ 呼び出し規約まで対応
#define FUNC(ret,opt) ret opt

ぐらいしか想像つかんな それを吸収しようとしてるのかしら?
773デフォルトの名無しさん (ブーイモ MMcb-T0kI)
垢版 |
2021/03/19(金) 19:09:51.97ID:mKZFPhjYM
ret opt の記述順を変えなきゃなんないコンパイラ併用でもしてなきゃ
必然性無いよな
2021/04/25(日) 18:24:42.50ID:1rqnmNJD0
VS2019を使用してます。
c言語でハッシュテーブルを使いたい場合、
定番のライブラリってありますか?
自作は考えてません。
2021/04/25(日) 18:43:09.76ID:f5CNtQYv0
C++ hashクラスを使う
C 自作する

スキな道を歩もう
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況