[過去ログ] C言語なら俺に聞け 162 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
303: (ワッチョイ cb62-dXDU) 2023/12/19(火)10:51 ID:E9BI8x9B0(1/2) AAS
少し前までスマートな人がたくさんいたのにいつの間にかバカしか居なくなった
304: (ワッチョイ cb62-dXDU) 2023/12/19(火)10:55 ID:E9BI8x9B0(2/2) AAS
>>297
違います
305(2): (ワッチョイ 5ee1-hm9h) 2023/12/19(火)11:32 ID:df21V+Ma0(1) AAS
>>301
LISPじゃね?深いコピーは演習なんかの定番だった気がする
306: (スップ Sd52-54/p) 2023/12/19(火)13:45 ID:3Nu9QseCd(1) AAS
>>305
比較の手段が参照と値と構造とで数種類あるしそうだろうね
この手の大抵の起源はLispだよ
307: (スププ Sd32-Hm2B) 2023/12/19(火)15:01 ID:+6PK9xZxd(2/2) AAS
Pythonの解説書には大概、ディープコピーとシャローコピーが載ってますよ
308: はちみつ餃子◆8X2XSCHEME (ワッチョイ d23e-/274) 2023/12/19(火)15:28 ID:J0ExAcTK0(1) AAS
>>305
もちろんそういう状況を扱っている事例は数多くある。
ただ、ざっと見た感じでは古いマニュアルでは「再帰的」とか「共有」とかいった語で説明するのが普通っぽい。
深い/浅いといった言い方が発生したのはもっと新しい言語でのことだと思う。
309: (ワッチョイ 2701-3PPy) 2023/12/19(火)19:44 ID:cwbunCZy0(2/2) AAS
複オジが粘着してそう
310(1): (ワッチョイ 77cd-UNLj) 2023/12/19(火)19:48 ID:KoTx3gw20(2/2) AAS
つか、Cは書いてる人にしか型が分からないからそんな器用な事は出来ないよな?
どっちのコピーも自前でちまちま作るしか無い
311: (ワッチョイ 92de-IA1d) 2023/12/19(火)19:53 ID:nmJwtfK30(1) AAS
呼称にこだわってる限りCなんて使えない
お上品な他の言語使ってりゃいいじゃん
312: (ワッチョイ cbd5-dXDU) 2023/12/20(水)05:56 ID:r5p/Itr10(1) AAS
>>310
その通りですよ
私はユーザが定義する集成型(structみたいなもの)を、PCをまたいでリモートコンピュータ上にコピーするもの(WindowsのC#とHP-UXのC)、を仕事で作った事があるのだけど、それをやるには型定義からガッツリ関わる仕組みを構築しないと無理なのよ。
自分はエクセルでやった(そして完璧にはできず特例処理だらけになった)けど、普通はDDLとか独自に作るでしょ
上の方で最初に話題出したヒトは多分、どういう問題空間でディープコピーとかシャローコピーを話題にする必要が生じるのか【すら】分かってないよ
そうだね 複オジ とか言われてた人の雰囲気と似てるね
313: (ワッチョイ b74b-gvj7) 2023/12/20(水)09:35 ID:/uXb+00h0(1) AAS
UPLIFT プレミアム・サービスのお知らせ
外部リンク:uplift.5ch.net
UPLIFT 主な特典
・連続投稿の規制を緩和します。
・スレッド作成時の規制を緩和します。
・5ch.netのスレッド表示画面に表示される広告を除去します。
・5ch.net専用ブラウザで5ch.netの過去ログを閲覧できるようになります。
・海外からのアクセス・ホスト経由からでも書き込みができるようになります。
・書き込みが規制されているプロバイダーからでも書き込みができるようになります。
・5ch.netを安定して利用できるように運営を支援できます。
省2
314: (ワッチョイ e3f0-HAvR) 2023/12/23(土)02:06 ID:cGlPuzRM0(1) AAS
>>297
もちろん概念としてはCの時代からある
しかし明確に言葉として定義したのはsmalltalkのはず
shallowCopyメソッドとかがある
315: (ワッチョイ 53d2-TKg5) 2023/12/23(土)10:35 ID:1vO40jtV0(1/7) AAS
smalltalk、凄いな!私はバートランド・メイヤーさん、すごく尊敬してます
javadocとかdoxygenみたいなシステムも、もうあの時代に彼はすでに形にして世に出してるんですよね
例外の説明とか、プログラムを契約の履行に例える話とかもそうだし、あとコメント論とかもイケてるんですよ
頭良すぎて周りが付いてくのに何年もかかってる気がする
316: (ワッチョイ 53d2-TKg5) 2023/12/23(土)10:43 ID:1vO40jtV0(2/7) AAS
てかまあ、Cのスレだね
でもCで構造体リモートコピーするにはさ、みたいな話をしても、多分誰も乗ってきてくれないよね
317: (ワッチョイ 5363-y73S) 2023/12/23(土)11:24 ID:MLKmoxlx0(1/2) AAS
それは話の持ってき方。プレゼン上手ならできる
318: (ワッチョイ 6f97-xkue) 2023/12/23(土)11:28 ID:j8bI1ONF0(1/2) AAS
そーゆーのに憧れてる層には土方言語のCはいらんだろw
319: (ワッチョイ 43a4-BWWG) 2023/12/23(土)11:41 ID:PYuibGoS0(1/8) AAS
だからさ、C言語の変数や構造体内の型宣言なんてイイカゲンなんだからそう言う話ははなから無理なんだよ
320: (ワッチョイ 53d2-TKg5) 2023/12/23(土)11:42 ID:1vO40jtV0(3/7) AAS
メッセージというか伝送パケットを作る話とかはどうですかね(皆さん興味ありますか)
タグ・レングス・バリュー形式がー、とか
バイナリvs文字列とか
(文字列にして伝送するのって遅いと思うでしょ、意外と速度okだったりします)
あと、message pack とか
321(1): (ワッチョイ 43a4-BWWG) 2023/12/23(土)11:44 ID:PYuibGoS0(2/8) AAS
ゼロ(0x00)が送れないから文字列は無理
322: (ワッチョイ 43a4-BWWG) 2023/12/23(土)11:46 ID:PYuibGoS0(3/8) AAS
経路によっては7ビット+パリティに解釈されるからバイナリは無理
323: (ワッチョイ 43a4-BWWG) 2023/12/23(土)11:49 ID:PYuibGoS0(4/8) AAS
結局、デバイスとかハードの特性を理解する必要があるんだよね
324: (ワッチョイ 5363-y73S) 2023/12/23(土)11:54 ID:MLKmoxlx0(2/2) AAS
メッセージの受け渡しでハードの特性まで理解する必要はないだろう
325: (ワッチョイ 43a4-BWWG) 2023/12/23(土)11:57 ID:PYuibGoS0(5/8) AAS
だっていまどきC言語使ってる人なんて、デバイス寄りのハードウェアコントロールとか、チープなCPUに搭載するソフトとかだろ?
326(1): (ワッチョイ 53d2-TKg5) 2023/12/23(土)11:59 ID:1vO40jtV0(4/7) AAS
>>321
おっと、反応サンキュー
0x00をデータとして送るのってあるある話題ですよねw
確かに「通信全部が」文字列で、nul文字終端だとすると無理。
でも、アタマにデータサイズがあって、それからデータがある形式ならば、仮に文字列が続いてると見える中に、まるでゴミ文字みたいに0x00が入っててもokなのよ
実は今のHTTPもそうなってたはず
327(2): (ワッチョイ 43a4-BWWG) 2023/12/23(土)12:04 ID:PYuibGoS0(6/8) AAS
>>326
途中のコードに文字列操作を一切使わないならいいが
改修はいって文字列操作する人が居たらアウトだよね?
328: (ワッチョイ 43a4-BWWG) 2023/12/23(土)12:09 ID:PYuibGoS0(7/8) AAS
最初からunsignd charのポインタとサイズを構造体にして扱えば良いだけ
329: (ワッチョイ 53d2-TKg5) 2023/12/23(土)12:09 ID:1vO40jtV0(5/7) AAS
大昔は7ビットしか通らない経路あったねw
5baseとかの時代でしょうか
今は、8ビットを8ビットで伝送するほうが稀でしょうね
8ビットを10ビットで符号化することで、ゼロやイチが連続する数が少なくなるようにすることで、データ自体でタイミングを取れる方法をIBMが発明したとかで
だからこんなに速くなったそうです
330(1): (ワッチョイ 53d2-TKg5) 2023/12/23(土)12:13 ID:1vO40jtV0(6/7) AAS
>>327
多分あなたの危惧が伝わってないです
改修案件でバグを作り込んだのに動作確認せずリリースしてしまうっていう事なら、工程管理ができてないって話でプロとしてダメ
メッセージ形式の仕様とは関係ないですね
331: (ワッチョイ 53d2-TKg5) 2023/12/23(土)12:17 ID:1vO40jtV0(7/7) AAS
(…もしや「複オジ」さんだったかな?)
332(1): (ワッチョイ 6f97-xkue) 2023/12/23(土)12:56 ID:j8bI1ONF0(2/2) AAS
やっぱりめんどくさい奴だったかw
あんたにレスがもらえないのはテーマのせいじゃないとわかれ
333: (ワッチョイ 43a4-BWWG) 2023/12/23(土)18:17 ID:PYuibGoS0(8/8) AAS
>>330
安易に文字列を使う仕様にしてるとバイナリ通らないの忘れるし思わぬバグを生む原因になるから、最初からバイナリ配列にするか文字列操作関数を一切使わない様にしないとな
334: (ワントンキン MM07-TKg5) 2023/12/24(日)00:00 ID:B84K7ZI6M(1) AAS
>>332
うん…(悲しい)
335(6): (ワッチョイ 4602-UkJf) [asge] 2024/01/05(金)10:30 ID:ph0QLfWd0(1) AAS
Perlとかで利用している設定ファイルがあるのですが、
Cで書いたプログラムでも同じファイルを設定ファイルとして読み込みたいです
設定ファイルですが、このような感じです
val = abc
str1 = $val/AAA
Perlでは「$val」を展開し、str1に「abc/AAA」と設定してくれるのですが、
Cから読み込む場合は、自分で展開する必要があると思ってます
それをやってくれるライブラリや関数等、ありますでしょうか
336: (ワッチョイ e563-7PFe) 2024/01/05(金)10:49 ID:xgizPOi+0(1) AAS
その程度なら、自作できるだろう
337(1): (スププ Sd62-Blk0) 2024/01/05(金)11:38 ID:VxELzJcZd(1/5) AAS
#define val abc
338: (スププ Sd62-Blk0) 2024/01/05(金)12:10 ID:VxELzJcZd(2/5) AAS
enum { val = abc }
339: (スププ Sd62-Blk0) 2024/01/05(金)12:13 ID:VxELzJcZd(3/5) AAS
enum の方はエラーになる
340: (スププ Sd62-Blk0) 2024/01/05(金)12:27 ID:VxELzJcZd(4/5) AAS
#define もエラーになる
341: (スププ Sd62-Blk0) 2024/01/05(金)12:30 ID:VxELzJcZd(5/5) AAS
#define val "abc"
342: (ワッチョイ 651a-R/a6) 2024/01/05(金)12:30 ID:qVR6C9yQ0(1/3) AAS
>>335
そういうのをどう解決するかを自分が考えて実現するのが楽しいのに…
自分なら
設定ファイルを「環境変数を設定する」に変更して、perlもCも環境変数から設定項目を読む に変更する。
そのために
perl側を変更する権利を得る
OSに依存して良い条件
を確保する様に、喫煙所に通う
343: (ワッチョイ 651a-R/a6) 2024/01/05(金)12:49 ID:qVR6C9yQ0(2/3) AAS
>>335
別の解決案
・Cに優しい形式(右辺を全部展開した形で、イコール前後のスペースもなし)で吐き直すツールを、perlで作る
・自分で全部Cで作る
・lex/yacc を使って軽言語解釈ルーチンを作る
それぞれデメリットがあって、質問に直接答える「そういったライブラリはあるか」に一番合ってるのが、最後のlex/yaccだけど、それは一番バカらしい答えでもある。お好きに
344: (ワッチョイ 651a-R/a6) 2024/01/05(金)12:51 ID:qVR6C9yQ0(3/3) AAS
>>337
君、答える側になれる実力ないだろ
345: (ワッチョイ 065f-414C) 2024/01/05(金)12:54 ID:KwPCWpVD0(1) AAS
sscanfで読めばよかろうもん
346: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-slPv) 2024/01/05(金)13:07 ID:t0UUGhQq0(1/2) AAS
>>335
その説明では何をやりたいのか伝わってないので仕様書を書いてみて。
理想的なライブラリがあったとして、そのテストケースという形式でもいい。
曖昧模糊な要望だと説明が下手なだけでなく説明しようとしている内容が見当違いな可能性を疑う。
(いわゆるXY問題)
347: (ワッチョイ 2eab-zkkm) 2024/01/05(金)13:32 ID:38bnxq2E0(1) AAS
Cのソースでその展開もどきを行いたいのか
Cで書いてるプログラムがとあるファイル食って文字処理するんだけど、同じことを実現したいのか
348: (ワッチョイ 45bb-dhuT) 2024/01/05(金)13:37 ID:M4U6Kwpw0(1) AAS
>>335
これは実装するとなると簡易言語になっちゃうな
でも変数と変数参照だけだから大して難しくないよ
たぶん1000行ぐらいに収まる
349: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-slPv) 2024/01/05(金)14:59 ID:t0UUGhQq0(2/2) AAS
どうしても既存の設定ファイルをそのまま使いたい、それを処理できるようなものが欲しいということなら
そんな都合の良いものがあるわけない。 自分で書くしかしょうがない。
完璧にそのままのフォーマットでなくおおよそ似た機能があればよいなら
TOML とか JSON とか YAML とかの広く使われているフォーマットを採用したほうが面倒が少ない。
Perl でも C でも処理できるライブラリがいくつもあるし。
これらには変数展開のような機能はないが、
設定ファイルで動的な操作を可能にするのは問題を引き起こしやすいと考えられていて、
アプリケーション側でやるかプリプロセッサでなんとかしたほうがよい。
(強いて言えば YAML のエイリアス機能は変数のようなものとも言えるけど文字列を結合したりは出来ない。)
逆に設定どころではなくユーザーによるカスタマイズをどんどんやってもらうようなものなら
省1
350: (ワッチョイ c2b5-R5Zd) 2024/01/05(金)15:39 ID:mdj5x9Xd0(1) AAS
Perlにそんな便利機能あったっけ
351: (ワッチョイ c6bb-bJ3A) 2024/01/05(金)18:09 ID:xFVV62H30(1) AAS
Cは遅延評価を積極的にやるための言語ではないからなあ
C++やC#ならあるんだけどね
lex/yacc はちょっと古くて
今なら flex/byson ですね
352: (ワッチョイ 42ad-nK/n) 2024/01/06(土)15:06 ID:NPThFXTg0(1) AAS
$ の変数展開しかやらないなら複雑な構文解析にはならないから全部自作した方が楽なのでは?
少し楽したいなら perl に読ませて $ 展開させた文字列に変換して出力したのを C の側で読むとかね。そうすると少し楽ができる。
これの問題は perl が使えない環境では動かないことかな。
353: (ワッチョイ 2ecf-9iEs) 2024/01/06(土)16:25 ID:2Gstkfh+0(1) AAS
今なら packcc おすすめ
354: はちみつ餃子◆8X2XSCHEME (ワッチョイ 823e-slPv) 2024/01/06(土)16:27 ID:iX+vez910(1) AAS
設定ファイルのデータ構造が key/value の組だけ、 value は単なる文字列という程度なら
パーサジェネレータはかえって邪魔じゃないのかな。
355: (ワッチョイ 651a-R/a6) 2024/01/06(土)21:36 ID:8zwGVkiA0(1/5) AAS
lex/yaccは使った事ない人にはハードル高いだろうね。逆に、使い方が分かると何でもそれでやりたがる時期が来る。どんなツールや言語でもそうだろうけど
356: (ワッチョイ b2c2-dhuT) 2024/01/06(土)21:39 ID:YhaQaYGw0(1) AAS
BNF書いても大した量にならないだろうし俺ならフルスクラッチで書いちゃうな
357: (ワッチョイ 651a-R/a6) 2024/01/06(土)21:45 ID:8zwGVkiA0(2/5) AAS
で、設定ファイル、shで環境変数を設定すりゃ済む、という案に誰も反応してもらえないんだが、どうだい? windows ならcmdだろうけど
設定項目ってのは、パス文字列とか、メモリサイズとか、ほぼ固定だけどあとから変えたい場合もあろう、っていう定数だよね。環境変数ってまさにその目的だと思ってる。
ドル記号で一時値の展開もできる。Cからも簡単に読める。
358: (ワッチョイ 651a-R/a6) 2024/01/06(土)21:56 ID:8zwGVkiA0(3/5) AAS
shで、設定ファイル兼、実行ファイル起動ラッパを書いて、利用者には直接実行ファイルじゃなくラッパを起動せよと説明して
export XXX_ROOT=/var/xxx
export XXX_INPUT_DIR=${XXX_ROOT}/in
export XXX_OUTPUT_DIR=${XXX_ROOT}/out
export XXX_READBUF_SIZE=32768
exec ${XXX_ROOT}/bin/xxx
Cで読む処理は
get_conf_str(...) //文字列項目用
get_conf_i64(...) //整数項目用
省3
359: (ワッチョイ 651a-R/a6) 2024/01/06(土)22:02 ID:8zwGVkiA0(4/5) AAS
get_conf_str() と get_conf_i64() の中身は
getenv() を使って簡単に実装できる、のは分かるよね?
360: (ワッチョイ e1f0-P53C) 2024/01/06(土)22:09 ID:LvNnK4+W0(1) AAS
単なる文字列だけなら正規表現の置換でいいだろ
361: (ワッチョイ 651a-R/a6) 2024/01/06(土)22:20 ID:8zwGVkiA0(5/5) AAS
struct conf_t {
char* input_dir
char* output_dir;
int64_t readbuf_size;
} g_conf;
文字列項目はC++だとstd::string にする所だが、Cだとstrdup(的なもの)で実装しても良いんじゃないかい。
g_conf.inputdir = get_conf_str(
"XXX_INPUT_DIR", "/var/xxx/in");
g_conf.outputdir = get_conf_str(
"XXX_OUTPUT_DIR", "/var/xxx/out");
省3
362: (ワッチョイ 627a-JKp6) 2024/01/06(土)23:25 ID:4fq2Cpkf0(1) AAS
まあ落ち着けよ 質問者はそんなこと聞いとらんだろうよ
363(1): (ワッチョイ ff7a-dvWY) 2024/01/07(日)00:35 ID:yw4Ulg6E0(1) AAS
for(;;){
if((result = fgets(line, MAX_LEN, stream)) != NULL){
p1=result;
p3=p1+strlen(line);
p2=strtok(p1, "=");
}
}
これで、p1とp2から左辺、p2とp3から右辺が取り出せる。
$の展開は、マクロ展開処理の要領で
右辺に$があるかチェックして、あったら定義値に置き換えるという
省1
364: (ワッチョイ 7fb5-j9I8) 2024/01/07(日)08:57 ID:4P3NNejl0(1) AAS
>>335
>Cから読み込む場合は、自分で展開する必要があると思ってます
その通りです
>それをやってくれるライブラリや関数等、ありますでしょうか
ありません
自作する必要があります
>>363
p2=strtok(p1, "=");
スペースやタブの処理が必要
365: (ワッチョイ 7f79-e2pS) 2024/01/07(日)10:17 ID:gAwkeLQQ0(1) AAS
せめて既存の気の利いた言語のstring型のメソッドやらを参考にしろよ
ここで再発明しても誰も使わんだろ
366: (ワッチョイ 5f1a-nsdu) 2024/01/07(日)10:25 ID:TVg93ufA0(1) AAS
質問者、もういない
367: (ワッチョイ df01-6482) 2024/01/07(日)11:15 ID:SfiTOIyR0(1) AAS
>>335
>それをやってくれるライブラリや関数等、ありますでしょうか
perlはCで書かれてるけどね
368: (ワッチョイ 5f63-vNrU) 2024/01/07(日)11:23 ID:XrTF2oph0(1) AAS
動かすCプログラムをperlに書き直す方が簡単そう
369: (ワッチョイ 7fad-ipwt) 2024/01/07(日)16:24 ID:tTa6vFrs0(1) AAS
こんな方法もある。しかし $ の変数展開しかしないなら無駄な感じはするね。それだけのためにここまでするのかという。
perlembed - C プログラムへの Perl の埋め込み方
外部リンク[pod]:perldoc.jp
370(1): (ワッチョイ 5f63-vNrU) 2024/01/10(水)16:11 ID:PVZRGcug0(1/2) AAS
$がリテラルとして入ってた時はどうするかとか、結構面倒そう
371(2): (ワッチョイ 5f1f-nsdu) 2024/01/10(水)17:49 ID:C4OEbwTl0(1/4) AAS
>>370
そうなんだよー、真面目にやるとバカみたいに面倒なのよ
文字列リテラルの中に $ やコメント開始終了記号が入る事もあるし
コメントの中に $ や文字列開始終了記号が入る事もある
# "#"
$aaa = /* $コメント " */ "文字列/**/値";
なので、頭から読み始めて、状態を追いながら(現在の場所が 文を書く所か、コメント内か、文字列内か)読まないと、正しいファイルを正しく読めない
んで、つまんないバグを作り込んだりするの。その、もういない誰かが作り込んだつまんないバグを、別の誰かが直すはめになる。そんなの嫌じゃね?
372: (ワッチョイ 5f1f-nsdu) 2024/01/10(水)17:57 ID:C4OEbwTl0(2/4) AAS
でも本当に、質問者はもうトンズラしたと思うよ。次の話をしよう
373: (ワッチョイ 5f63-vNrU) 2024/01/10(水)18:00 ID:PVZRGcug0(2/2) AAS
次の患者さん、どうぞ
374: (ワッチョイ ffcf-mfjK) 2024/01/10(水)21:56 ID:Qa3z5jue0(1) AAS
>>327
どっちにしろ質問者のためにやってるわけじゃないからいいんだよ
375(1): (ワッチョイ 5ff5-j9I8) 2024/01/10(水)22:25 ID:Gs+Ha8Nh0(1) AAS
>>371
そこまでのコメント機能はいらんやろ
シェルスクリプトの設定ファイル程度のことができればいいんだろうから
#が来たら改行までをコメントとするぐらいで
376: (ワッチョイ 7fd9-EKXI) 2024/01/10(水)23:20 ID:ZQ7M3ZpB0(1) AAS
ちなみにCの識別子に$を使える
少なくともgcc, clang, msvcで使える
int $val = 0;
とか
377(1): (ワッチョイ 5f1f-nsdu) 2024/01/10(水)23:20 ID:C4OEbwTl0(3/4) AAS
>>375
環境変数設定で「十分」どころか、それがかなりきちんと対応している。
シェルは(shもcmdも)「改行までコメントとみなす」なんていういい加減な実装じゃないよ
378: (ワッチョイ 5f1f-nsdu) 2024/01/10(水)23:36 ID:C4OEbwTl0(4/4) AAS
パーサー実装の現実的な話がまともにできるニキはここにはいないねw
379(1): (ワッチョイ 5f1f-nsdu) 2024/01/11(木)02:31 ID:uSDU2aBB0(1) AAS
ほらな、はちみつも黙るやろ
規格は詳しいけどな
380: (ワッチョイ 5fbb-EKXI) 2024/01/11(木)02:42 ID:WTkhFxto0(1) AAS
パーサーなんて大して難しくないよ
テスト書けば
381: (ワッチョイ 5fa6-j9I8) 2024/01/11(木)06:03 ID:ZajpDUJL0(1) AAS
>>377
いやだからそんな本格的に作る必要ないって話
労力の投入場所を選定するのもプログラマの能力
382: (ワッチョイ ffcf-mfjK) 2024/01/11(木)07:51 ID:7oF58mtI0(1) AAS
>>371みたいなので悩むならさくっと正規表現ライブラリやパーサージェネレータ使うな。
学習のために自分でパーサー書いてみたいってんなら別だが。
383: はちみつ餃子◆8X2XSCHEME (ワッチョイ 7f3e-Cx9t) 2024/01/11(木)09:41 ID:NL5Kg7pj0(1) AAS
>>379
仕様が曖昧なのに実装の話をしても無意味だろ。
新しい情報が提示されないなら回答すべきこともない。
384: (ワッチョイ 5f63-vNrU) 2024/01/11(木)09:42 ID:ZxeGb/wD0(1) AAS
誰か、作ってやれよ
385(1): (ワッチョイ df09-dvWY) 2024/01/12(金)10:13 ID:Umd8uX9b0(1) AAS
strcat() はダメなの?
386: (ワッチョイ ff5f-03E5) 2024/01/13(土)00:25 ID:suyQO94R0(1/2) AAS
sscanfで十分だよ
387: (スッップ Sd9f-j9I8) 2024/01/13(土)09:14 ID:mB7BPAPVd(1) AAS
>>385
参加したかったの?
388: (ワッチョイ 5f63-vNrU) 2024/01/13(土)09:41 ID:fMrSPcrk0(1) AAS
ここに書けば参加したことになるよ
389: (ワッチョイ 5f59-P7l0) 2024/01/13(土)13:22 ID:kmNIHanh0(1) AAS
参加することに意義がある
390: (スッップ Sd9f-+zra) 2024/01/13(土)16:53 ID:8Ttuq2mzd(1) AAS
C言語からJSON読み書きにオススメのライブラリやDLL教えてくれさい。
UTF-8↔ANSI変換はAPIでやれそうです。
391: (ワッチョイ ff5f-03E5) 2024/01/13(土)19:04 ID:suyQO94R0(2/2) AAS
yyjsonで十分だよ
392(7): (ワントンキン MM16-l2AN) 2024/01/17(水)13:51 ID:MxPcwzaVM(1) AAS
以下はmalloc()で割り当てた領域を開放してポインタをヌルポインタにするマクロである
#define MYFREE(p) do {free(p); p = 0;} while(0)
このマクロに不備があるかないか、ある場合はどんな不備か答えよ
ただし処理系はANCI C準拠とし、stdlib.hがインクルードされていることとpが左辺値かつmallocで割り当てた領域を指す有効なポインタであることの2点は呼び出し側によって保障されているものとする
393: (ワッチョイ 427c-kX52) 2024/01/17(水)16:32 ID:sbbnyjB/0(1) AAS
宿題は他所でやれ
394(3): (ワッチョイ f901-LNAd) 2024/01/17(水)19:42 ID:bWv2IYcS0(1/2) AAS
do-while文で回す意味ってあるの?
395: (ワッチョイ c563-LNAd) 2024/01/17(水)19:44 ID:UA2B8Wur0(1) AAS
使った人に聞きなさい
396(1): (ブーイモ MM22-Nr/L) 2024/01/17(水)19:49 ID:dYqrLAA4M(1) AAS
>>394
セミコロンをつけさせるため
397: (ワッチョイ 25bb-ggGG) 2024/01/17(水)21:11 ID:DTNbW1I/0(1) AAS
>>392
答えわかったけど教えない
398(1): (ワッチョイ 72cd-Qz6p) 2024/01/17(水)21:21 ID:Am4HUjmg0(1) AAS
>>394
2つ以上の文をマクロ関数の形にするときに、C言語の仕様において最も合法安全とされるイディオムだよ
399(1): (スッップ Sd22-aNQv) 2024/01/17(水)21:47 ID:i5GqHIkod(1) AAS
>>394
たとえば
#define MYFREE(p) free(p); p = 0
と定義すると
if( 条件 ) MYFREE( p );
と書くと
if( 条件 ) free(p); p = 0;
と展開されてしまいp = 0;は条件に関わらず実行されてしまう
またこの後にelse節が続くとエラーになってしまうなど不具合の原因になる
400(1): (ワッチョイ f901-LNAd) 2024/01/17(水)23:38 ID:bWv2IYcS0(2/2) AAS
>>396,398,399
全然知らなかった
アリガト
401: (ワッチョイ 2214-HXAs) 2024/01/18(木)11:04 ID:0zoYvNSM0(1/2) AAS
>>392
その条件下ならない
でもpが左辺値という前提がなかったら変なコトになるコードが書けるね
402(2): (ワッチョイ 2214-HXAs) 2024/01/18(木)11:04 ID:0zoYvNSM0(2/2) AAS
>>400
396はゼンゼン関係ないんだけどホントに分かってんのか?w
上下前次1-新書関写板覧索設栞歴
あと 600 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s