C言語なら俺に聞け 141 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2017/07/17(月) 21:06:47.63ID:J4JGo3XO
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/


http://mevius.2ch.net/test/read.cgi/tech/1494508803/
http://www.geocities.jp/c_cpp_cs/about_c/
2017/07/28(金) 02:06:17.70ID:zRJpQFXf
1ビットの変数同士を比較する場合
& ビット演算子
&& 論理演算子
どっち使った方がいいの?

---例---
input mem_ack, cpu_ack
wire mem_ack, cpu_ack




if (~(mem_ack & cpu_ack))
state <= 2
--------
2017/07/28(金) 02:08:50.20ID:uZDKFvFZ
>>261

逝きろ
264デフォルトの名無しさん
垢版 |
2017/07/28(金) 06:32:14.27ID:X5sNiV59
>>257
版権が会社にあるコードなら
もちろん会社の責任でテストするが
だから何?
2017/07/28(金) 06:51:58.94ID:jwLN5n78
>>247
ブーメラン過ぎる w
初期化リストの「作り方」の説明してみな
266デフォルトの名無しさん
垢版 |
2017/07/28(金) 10:25:49.30ID:X5sNiV59
おいVerilog使い、なぜここに来た?
2017/07/28(金) 10:43:31.58ID:KAkdfNJb
Cスレでは初期化リストは「書く」とか「記述」するものであって「作る」ものじゃ無いな
ツールやマクロで生成したり作ったりする事はあるが、そう言うまれな場合は「マクロで作る」と書くだろう
2017/07/28(金) 10:54:04.18ID:g6yGf319
>>262>>266
ホントだw
よく見たらC言語じゃなくてVerilogだなwww
2017/07/28(金) 11:13:16.53ID:WViVOgsq
>>267
じゃあ違うとすると、
C言語のリストって何だ?
って話
270デフォルトの名無しさん
垢版 |
2017/07/28(金) 12:35:43.09ID:WvgdGCet
>>269
だから、データ構造としてのリスト構造しかないでしょって話では?
以下ネバーエンディングストーリー
2017/07/28(金) 12:42:15.76ID:WViVOgsq
C言語と関係ない
2017/07/28(金) 13:28:06.90ID:KAkdfNJb
文法上でリストと呼ばれているものは初期化リストの他にもたくさんあるぞ
一々あげないが、パラメータリストとか
2017/07/28(金) 15:09:08.59ID:1Qvc81q6
va_listなら頑張れば作れる
2017/07/28(金) 16:20:09.34ID:WViVOgsq
>>272
で?
2017/07/28(金) 16:32:13.65ID:KAkdfNJb
ID:tCxrViSfが救いようの無いバカって事だよ
276デフォルトの名無しさん
垢版 |
2017/07/28(金) 18:33:35.00ID:2hIYBPjn
>>269
>>231
2017/07/28(金) 18:49:21.90ID:XBSdfIgC
連結リストを一から作れるってそんなにいないんじゃないかな
2017/07/28(金) 18:55:04.96ID:mbT3OJMo
1からの定義というか
0からではないんだよね?というか
まぁそのへんフワフワだけど

学校でプログラミング習ってるやつらは
一回はそれ「作らされてるから」
今でも作れって言われたら作れると思う
2017/07/28(金) 19:06:21.61ID:mbT3OJMo
あ、今の子はPascalとかCとか習わないのかな…
2017/07/28(金) 19:09:55.81ID:qWRZaL/E
>>272
で、それらの「作り方」について説明してくれるかな w
2017/07/28(金) 19:14:48.96ID:0EVBlpnp
脱初心者の登竜門の定番だね
自己参照構造体とポインタを理解していればそれほど難しくはない
2017/07/28(金) 19:17:50.96ID:LlfbS2K5
えちょっと待ってジェネリックなリストとかじゃなくて、doubleのリストとか、なんか自分で決めた型のリストとかだよね?
初心者向けのCの本で書いた記憶があるんだけど、最近は載ってないの?
283デフォルトの名無しさん
垢版 |
2017/07/28(金) 19:21:50.85ID:/bI4c4xS
苦CとやさしいCには載ってなかったな。
自分もCのアルゴリズム本でリストは覚えたし。
2017/07/28(金) 19:32:08.21ID:WViVOgsq
ジェネリックなリストとdoubleのリストって
ほとんど差が無いような
2017/07/28(金) 20:00:04.70ID:xox6mhpi
>>279
やらないよ
2017/07/28(金) 20:04:12.64ID:qWRZaL/E
>>277
struct List_t {
struct List_t *Previous;
struct List_t *Next;
double Data;
};
のDataの型変えるだけだし
まあいろんな型が必要だとテンプレートが欲しくなるけどマクロでもそこそこ行けるしね
2017/07/28(金) 20:06:39.62ID:+MWeEFjB
初心者に双方向はまずいですよ。
288デフォルトの名無しさん
垢版 |
2017/07/28(金) 20:06:46.98ID:SfCHZxYK
そこはテンプレートが遅くなる要因だから、性格の違いって事で。
2017/07/28(金) 20:12:26.13ID:xox6mhpi
>>286
普通,実用に供するのならば,void *Data だね
290デフォルトの名無しさん
垢版 |
2017/07/28(金) 20:21:38.71ID:SfCHZxYK
型検査引っ掛からなくなるんだから、実用なら必要な型でリスト作らんと怖いだろ。
元々かっちり作る用途向けで、そう言うのはどうしてもって時だけ。
2017/07/28(金) 20:24:27.39ID:WViVOgsq
>>287
片方向でも双方向でも大して変わらないと思うが
2017/07/28(金) 20:33:05.95ID:WViVOgsq
いずれにしろリストなんて簡単
setになると途端にレベルが上がる
それこそ、
使えても作れない人は多い
2017/07/28(金) 20:50:39.02ID:KAkdfNJb
>>280
バーカ、それらは「記述」するもので、「作る」ものじゃねーと言ってるだろ

わかんねーのか死ねバカ
2017/07/28(金) 21:02:23.86ID:wndodTEE
>>289
何でそんな面倒なことをするんだ?
2017/07/28(金) 21:04:55.04ID:wndodTEE
だからその他のリストをわざわざあげる>>272がバカって話なんだが w
2017/07/28(金) 21:05:03.15ID:Mk6h7bQQ
つかリストもSetもCでは大して使わないだろ。
297デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:12:41.92ID:SfCHZxYK
LL用のライブラリCで書いたりとかで普通に書くだろが。
2017/07/28(金) 21:21:31.63ID:Mk6h7bQQ
ならLLで全部やれ。
Cでやるのなら主に高速化なのだから、高速に演算できるようにあらかじめLL言語側で並べ替えるだろ。
299デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:26:15.12ID:SfCHZxYK
リストで並べ替え?
そもそも、その並べ替えも遅いからCで。。。
どこから突っ込んで良いのよ。。。
2017/07/28(金) 21:27:04.09ID:wtp1eGJk
LLって初耳だわ。
301デフォルトの名無しさん
垢版 |
2017/07/28(金) 21:32:03.07ID:SfCHZxYK
LightwaitLanguageの略で、PythonとかRubyとかの総称。
趣味グラマ含めて、LL知らない奴に初めて会ったわ。
2017/07/28(金) 21:35:30.75ID:wtp1eGJk
つまりCはHLなわけだな。Heavyな時代になったな。
2017/07/28(金) 21:43:29.87ID:0EVBlpnp
データ間の関係が直線構造のリストはこれといった使いどころを見つけるのが難しいのはまあ分かる
階層構造のバイナリツリーや網目構造のグラフにまで拡張するといろいろ応用範囲が広がる
2017/07/28(金) 22:00:00.22ID:wndodTEE
>>298
バカとしか言いようがない w
2017/07/28(金) 22:02:34.71ID:wndodTEE
>>301
weight な
2017/07/28(金) 22:09:25.05ID:wtp1eGJk
おれの感覚がズレてるのかと思ったら、英語のwikipはそのままの意味だな。
LL言ってのは日本だけだという。こんなのバズワードでいいよ。

> A lightweight programming language is one that is designed to have very small memory footprint,
> is easy to implement (important when porting a language), and/or has minimalist syntax and features.
2017/07/28(金) 22:12:46.77ID:e9WYMOex
俺もLL通じるけどなw
2017/07/28(金) 22:18:36.85ID:Mk6h7bQQ
>>299
エアプ死ね。

> そもそも、その並べ替えも遅いからCで。。。
LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ。
2017/07/28(金) 22:23:43.64ID:wndodTEE
ここは日本なのに海外wikipedia持ってくるとか相当ずれてると思う
2017/07/28(金) 22:28:08.90ID:wndodTEE
>>308
恥の上塗りかよ w
たいていのLL言語はオープンソースでCとかとのインターフェースが整備されてたり内部構造のドキュメントあるぞ
でないとライブラリとか書けないし
とりあえずpythonの例な
https://docs.python.jp/3/extending/extending.html
2017/07/28(金) 22:53:05.56ID:Mk6h7bQQ
>>310
> 拡張モジュールをサポートするため、Python API (Application Programmer’s Interface) では
> 一連の関数、マクロおよび変数を提供していて、
> Python ランタイムシステムのほとんどの側面へのアクセス手段を提供しています。
> Python API は、ヘッダ "Python.h" をインクルードして C ソースに取り込みます。
お前は日本語が読めないということが分かった。

それで、お前はいつ>>286みたいな記述が必要なんだ?
普通はPyxxxを使ってPython側から読み出して、
C側の演算高速化用フォーマット(通常はただの配列)に最初から変換するんだよ。
お前はC側でもリストを実装してPythonと同じ事をするアホのようだが。
2017/07/28(金) 22:57:00.44ID:DfUcDVfp
またパイソンの話してんのか
2017/07/28(金) 22:59:57.49ID:wtp1eGJk
>>309
本気で言ってるのか?日本語ドキュメントなんて限られてるから技術者はググるときは英語だろう。
しかもwikipの日本語のIT用語の項目なんてほとんどないぞ。日本はIT後進国だから。中国語のほうが充実してる。
その中にあってLLだけば日本語版だけが異常に充実してるという。
まぁ、日本語でググったけどLL言ってるのはWEB2.0、クラウド、AI言ってる輩だね。
C言語使わない、使えない輩だからおれには接点はないわ。どっちがズレてるかよく考えてほしいね。
2017/07/28(金) 23:05:09.92ID:wndodTEE
とりあえずお前は「無知でごめんなさい」から始めようか w
> LL言語側のリスト等の物理配置は公開されてないんだから、これは無理だろ。
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ
2017/07/28(金) 23:07:08.97ID:kYloII+J
>>313
面倒な奴
よほど恥ずかしかったんだろうな
2017/07/28(金) 23:11:29.26ID:Mk6h7bQQ
>>314
> 仮に公開するにしても当然アクセス用API関数であって、内部構造は隠蔽されるだろ
お前マジで日本語読めないのな。Python.hってまさにこれなんだが。
日本語読めない奴と議論するのは無理だからもう諦めるが。

>>313
LLって海外でも普通に通じるよ。
2017/07/28(金) 23:13:42.45ID:kYloII+J
>>316
隠蔽の意味も理解してない奴に言われてもなぁ w
2017/07/28(金) 23:16:01.92ID:d5LZ2kks
スレチ
2017/07/28(金) 23:20:19.95ID:wtp1eGJk
>>315
そうなんだよ。聞いてくれよ。怒り心頭だよ。
日本語のwikipのLLの内容はマジで恥ずかしい。こんなアホ議論してるのは世界で日本だけ。

> この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。
> この節には独自研究が含まれているおそれがあります。
> 日本独自の用語・分類への批判
> 比較対象がないことへの批判
> 誤解を招く用語であるという批判

なんだこれ。こんな完全なバズワードを偉そうにLLすら知らないのかって言われたんだよ。

こんな用語使ってる輩の脳がLightWeightなのに。
2017/07/28(金) 23:26:08.74ID:Mk6h7bQQ
まあ俺が突っ込みたかったのは、

> 連結リストを一から作れるってそんなにいないんじゃないかな (>>277)
これはLL言語(=習得が簡単な言語=馬鹿用言語)ならそうだが、
Cなら作れない奴は殺される。ただしそれ以前に、

> 苦CとやさしいCには載ってなかったな。 (>>283)
のように、そもそもCではリストを使う機会はあまり無い。
だから載ってないのも妥当。
2017/07/28(金) 23:32:35.71ID:e9WYMOex
仮にバズワードとしてもわざわざ2chで知らないアピールせずに黙ってググれば馬鹿にされることもなかったろうに
2017/07/28(金) 23:42:53.57ID:wtp1eGJk
確かにLL知らないで馬鹿にされた。だが今はもう違う。おれが馬鹿にする番。

LLなどという日本限定バズワードを使う胡散臭い輩がC言語スレで能書き垂れてんじゃねーよ、
英語もできんLightWeigt脳の低スキル技術者どもが。
2017/07/28(金) 23:58:33.49ID:Mk6h7bQQ
>>322
「LL(言語)」ってのは通じる言葉だ。だから使う事自体は悪くない。
(正確にはLL言語だと「言語」が被るのだが、俺は「言語」付けた方が通じやすいと思う)

ただし通じる界隈は違っていて、LL言語と纏めて呼ばれるのは通常、
Perl/Python/Ruby/JavaScript等だから、ここら辺のユーザーなら確実に通じる。
実際、Perl/Python/Rubyなんて使用範囲もできることも同じで、区別する必要ないだろ。
だから纏めてLL言語と呼ばれるし、彼らもそれに慣れている。
C/C++/Java/C#等はこれらとは全く違うため、
この界隈では「LL言語」という言葉が使われることは少ない。
それだけ。
2017/07/29(土) 00:02:27.03ID:gp3BUyJn
スクリプト系言語でいいだろ。昔からそう言ってる。
2017/07/29(土) 00:07:34.47ID:VkCqDRe3
lol
326デフォルトの名無しさん
垢版 |
2017/07/29(土) 00:16:53.64ID:vlC06Wfm
(lol)

こうすると顔文字のようだ。
2017/07/29(土) 00:22:54.09ID:gxbujSGs
>>324
いやそれはちょっと違う。日本語版Wikiはちょっと広めに取りすぎている。
https://ja.wikipedia.org/wiki/%E8%BB%BD%E9%87%8F%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
実際のところ、俺の感覚では、以下だ。
Perl/Python/Ruby/JavaScript <-100%LL言語に含まれる
PHP/Lua <- LL言語に含める奴もいる。割合は50%位か?
AWK/bash <- LL言語に入れる奴はいない。これらはスクリプト言語と呼ばれる。

旧来の「スクリプト言語」はフルセットの機能を持っていなかった。
ところがPerl以降はプログラミング言語としても遜色なくなってきている。
とはいえC++やJavaとは明らかに違う。
ということでこれらを呼ぶために生まれた言葉が「LL言語」だ。(と思う)
よく分からなければ「Perl/Python/Ruby/JavaScript/その他」の理解で問題ない。
328デフォルトの名無しさん
垢版 |
2017/07/29(土) 00:27:01.78ID:E9tUO4Ko
LLという日本語だと思えば別に恥ずかしくないだろうに。
329デフォルトの名無しさん
垢版 |
2017/07/29(土) 00:29:11.14ID:vlC06Wfm
これからは BASIC

10 PRINT "ぷ"
2017/07/29(土) 00:31:57.73ID:gp3BUyJn
C#だろうとJavaだろうとFotranだろうと多くのライブラリはC、C++で書かれてる。
スクリプト系言語に限定して議論する理由は?
2017/07/29(土) 00:33:28.06ID:YB2Y7dkJ
>>327
Basicはどの辺に分類されるの?
2017/07/29(土) 00:36:55.90ID:YB2Y7dkJ
bashがスクリプト言語になるなら、Emacsもそうなるかな
2017/07/29(土) 00:37:55.49ID:dTbBo9oQ
で、結局リスト実装出来ない雑魚はおんのか?
2017/07/29(土) 00:48:16.16ID:gxbujSGs
>>330
何が言いたいのか分からんが、エスパーするとこれで答えになるか?

LL言語 ⊂ (君の言う超広義の)スクリプト言語

C#/Java/FortranをLL言語と呼ぶ奴はいない。
つか、知らない言語の話なんてしないんだし、
自分の知っている言語のどれがLL言語と呼ばれるかフラグ立てておけば済む話だぞ。
出現頻度だけで言えば、LL言語≒Perl/Python/Ruby/JavaScriptでいい。
2017/07/29(土) 01:53:34.44ID:YB2Y7dkJ
LL言語という物の中身は分かりましたが
そのように分類する事で、
得るものがあるようには感じませんでした
2017/07/29(土) 04:02:19.23ID:F0OdFQYT
>>294
ソートが楽になるだろう?
2017/07/29(土) 04:04:40.21ID:TpFswTs0
>>295
バーカ C言語すれだから初期化リストだと思ったとか寝言ほざいてるID:tCxrViSfのバカさを指摘するために
他の文法要素でリストばたくさんあるぞと指摘してやったんだろ

死ねバーカ
338デフォルトの名無しさん
垢版 |
2017/07/29(土) 05:24:03.96ID:sjwibnJ3
既存のCのコードをUnicode対応に書き直したいんだけど、
char を wchar_t に置換したり、文字列リテラルにプレフィックス付けてくれたり、
関数を wchar.h 版にしてくれる便利なツールは無いですか?

もしくは予約毎と文字列リテラルだけを対象にしたいので、
パースして品詞情報を出してくれるスクリプトなんかあれば改造するかも。
2017/07/29(土) 05:31:19.12ID:u24XiLoF
>>336
double とか int でもそう思ってるなら単なるアホだぞ
2017/07/29(土) 05:34:46.32ID:u24XiLoF
>>337
> 他の文法要素でリストばたくさんあるぞと指摘してやったんだろ
そんなもんは既に>>267で指摘されてるのに周回遅れでなにドヤッてんだよ w
2017/07/29(土) 05:39:01.00ID:u24XiLoF
>>335
まあLL知らなかったアホが悔し紛れにマウンティングしようとして自爆してるだけだから w
2017/07/29(土) 05:47:56.72ID:vlC06Wfm
>>338
そういうツール作ればいいじゃん。
2017/07/29(土) 07:17:17.25ID:N+YJafLA
>>338
全自動は厳しそう
文字のchatと文字以外のcharの区別が出来ない
2017/07/29(土) 07:28:56.29ID:N+YJafLA
>>337
その指摘の意図が不明
他にあるから何?
2017/07/29(土) 07:55:34.60ID:TpFswTs0
>>340
バーカ それもオレなんだが
往生際悪く日が変わってID変わったID:WViVOgsqが絡んできたから止めを刺してやったに過ぎないが
バカには理解できないようだ さすが救いようのないバカ
2017/07/29(土) 08:00:46.31ID:ULoSSJ2b
>>339
くさるほど連結リストを作るのに、いちいち特定の型に対応させてられないよ
2017/07/29(土) 08:04:41.41ID:N+YJafLA
>>345
で結局何のリストなの?
2017/07/29(土) 08:09:17.20ID:N+YJafLA
ていうか、
>>228の書き込み自体が皮肉なわけだけど
C言語自体にリスト構造なんて物はないっていう
本気で初期化リストだと主張してると思ったわけじゃ無いよな?
「初期化リスト?」だし
2017/07/29(土) 08:10:22.22ID:N+YJafLA
皮肉に対してトンチンカンな指摘をしてるアホが
一人いるみたいだけど
2017/07/29(土) 08:11:51.02ID:N+YJafLA
>>346
腐るほど連結リストを作るプログラムって何だ?
2017/07/29(土) 08:15:35.54ID:zJVnUUbX
>>345
ひょっとして同じこと繰り返してるバカって言われてることに気づいてないのか?
>>265>>280 でわざと同じように指摘してやったのに w
2017/07/29(土) 08:17:38.69ID:zJVnUUbX
>>346
>>290
2017/07/29(土) 08:25:35.65ID:N+YJafLA
>>289
使う側でいちいちメモリ確保、解放をするの?
それとも、Data自体が実体でキャストして使う?

いずれにしろ使いにく過ぎる
2017/07/29(土) 08:25:56.47ID:ULoSSJ2b
>>352
連結リストの型ごとにアルゴリズムを生成するの?それこそミスの元じゃない?
2017/07/29(土) 08:26:55.49ID:ULoSSJ2b
>>353
いちいちmalloc()/free() するんだよ
malloc()/free() でミスするようでは仕事にならん、というか検査用ラッパぐらい手持ちでもっとけよ
2017/07/29(土) 08:29:08.33ID:N+YJafLA
使いにく過ぎる

>>354
型ごとに同じコードを何度も記述する必要はないぞ
そのためのマクロだ
2017/07/29(土) 08:31:19.71ID:ULoSSJ2b
連結リストの中に連結リストとか自由にやりたいのだったら void *data 一択だよ
2017/07/29(土) 08:31:57.23ID:N+YJafLA
構造体名と型をdefineしてからインクルード
2017/07/29(土) 08:33:04.08ID:zJVnUUbX
>>354
> まあいろんな型が必要だとテンプレートが欲しくなるけど
マクロでもそこそこ行けるしね
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
2017/07/29(土) 08:35:18.93ID:ULoSSJ2b
どっちが書きやすいか試せば一発だが‥これは二分木でも一緒
誰か三重の連結リストなり二分木なりを自分のやりかたで書いてくれないか?
2017/07/29(土) 08:36:09.59ID:N+YJafLA
リストのノードとは別にメモリ確保が必要なら、パフォーマンスにも影響するし
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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