C言語なら俺に聞け 148

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウカー Sacf-slpW)
垢版 |
2018/09/19(水) 17:56:50.83ID:XSTNMnDwa
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言語なら俺に聞け 147
http://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2018/09/23(日) 16:20:33.89ID:wZwojnIWM
そこまで説明必要か?
十分だと思うが
2018/09/23(日) 16:24:02.25ID:M01VWGWsa
>>189
すごい
2018/09/23(日) 16:35:24.60ID:2VtMIRxv0
>>189
おーご苦労様。(俺に言われたくはないだろうけどさ)

まあそれで君なりのベストアンサーがその図だというのはそれでよし。
晴れて君はレースに出走出来、俺を貶すにしても筋が通るというわけだ。
君自身も回答を控えていた点から、直球回答は意味無いと考えていたわけだし、
マジで>>72が役立つと思う馬鹿はちょっと色々考えた方がいいぞ。

君が認めるかどうかはさておき、
良くも悪くも今君が作った図はインターネット上を彷徨うことになる。
そしてこれは次世代への蓄積となり、次世代はもっと効率よく学習出来るようになる。
君は未来に対して貢献したのだから、褒められるべきだ。
こういう、各自の努力の蓄積によって今の社会は成り立ってる。
学生の本分は学業だと言うのなら、社会人の本分は社会だ。
社会人はこれを認識し、社会に対して責任を持たなければならない。
2018/09/23(日) 16:47:50.83ID:2VtMIRxv0
>>189
そして詳細確認したが、「今回向け」に書いている点が惜しいな。

単方向リストで before を使うのは筋が悪い。
だからその図は今回には役立つが、ある意味『間違った』蓄積であり、
確実に『正しい』ものによって淘汰され、君の努力はいつか無駄になる。
そしてこういうミスリードを誘った「C言語本格入門」の著者は腹を切って詫びるべき、となるわけだ。

可能であれば君自身で修正し、ブログでも立ち上げてそこに貼り付けるか、(quitaでもいいか?)
ブログやってるが図がない奴に勝手に送りつける等、残す努力をするべきだな。
まあそちらの自由だが。
2018/09/23(日) 17:02:44.17ID:A9/M/+R7M
>>191
やりっぱなし感があるというか
手順の提示としては定常状態まで戻っておしまいの方が好ましいのでは
まして想定対象者が>>18みないな感じなら
197デフォルトの名無しさん (ワッチョイ 6e5b-onpN)
垢版 |
2018/09/23(日) 17:17:52.45ID:MC3A3QT40
あーうざい
>>189は今後もプログラミングを続けるべき18のためのもの。
長文くんの回答はハードモードで入門者の役に立たない。
この段階でダブルポインタとか頭おかしい。

>>196
うーん、ごめん無理。もう疲れた。
2018/09/23(日) 17:31:07.99ID:YEpQkxBa0
>>178
無能ですね
2018/09/23(日) 19:25:09.48ID:2VtMIRxv0
>>197
> この段階でダブルポインタとか頭おかしい。
そもそも二重ポインタが難しいってのがもう無理なんだよ。
ただのポインタと二重ポインタの難易度で大差はない。
それだとジャグ配列も理解出来ないだろ。

まあそれでも君は君なりにイージーモードの回答をしたつもりな点はいい。
それで俺の回答がハードモードすぎると批判するのも正しい。
他の馬鹿共もこいつを見習って何か回答してから文句を言え。
そうしないと何も改善しないんだよ。
そしてそれがお前らゆとりが最悪な点でもある。

なお、俺の回答は既に最初から何度も繰り返しているが、「IDEを使え」だ。
18は何が分かってないかすら理解出来ていない。
それを君も理解してるから、君も直球回答しなかったわけだろ。
だから俺の回答は、「IDE使って納得いくまでステップ実行しろ」になる。
ただし36のソースはゴミだから、わざわざステップ実行するなら41か44にしろ。
そして47が何故高速になるのか考えろ、というわけだ。

あと、君は『ゆとりスレ』を率いれる可能性がある。
他のゆとり共には回答出来るだけの知能がないから無理だったが、君にはあるようだから。
俺が気に入らないならスレ立てて頑張れ。他のゆとりも応援してくれるだろう。
俺はそっちには行かないことも約束する。
それで君たちだけで上手く回せるのなら、それが一番いいし。

そしてその程度で疲れるものだと理解出来たのなら、
俺やお前の上司や先輩がどれだけお前らゆとりの為にエネルギーを費やしてきたかを理解し、
感謝しつつ、お前も後輩の為にエネルギーを費やせ。
(上司や先輩に返す必要はない)
2018/09/23(日) 19:32:11.78ID:eq3kKmf90
この必死なレスのモチベーションはなに
2018/09/23(日) 19:51:24.73ID:A0stA7Ax0
>>200
自分の無知を指摘され、いったん素直に指摘を認めことができたけど後から後から突っ込まれ、怒りの矛先を他人に向けて自分を納得させようとしているのだと思われる。
カッコ悪い姿をさらし続けていることに自覚が無いらしい。
2018/09/23(日) 19:59:31.31ID:pZmr8c6F0
>>199
>ただのポインタと二重ポインタの難易度で大差はない。
それは、あなたの理解の仕方が、二重ポインタの難易度の差を感じない、というだけであって、
他の人にとっては、ただのポインタと二重ポインタとで、難易度に差が出る可能性はあります、というか、それが普通だと思います
2018/09/23(日) 20:03:40.44ID:2VtMIRxv0
>>201
違うぞ。お前はそういうことにしたいようだが。

>>200
まじめに聞きたいのなら答えてやるが、その前にお前が答えるに値することを示せ。
具体的には、>>189を見習って、お前なりのベストアンサーを出して見せろ。
そうでなければお前は文句しか言わない典型的クズゆとりでしかない。
それをちゃんと自覚しろ。
2018/09/23(日) 20:08:41.92ID:2VtMIRxv0
>>202
何度も言っているが、俺のレスが難しすぎるというのなら、
お前がより簡単なレスをすれば良いだけだ。お前は何故それをしない?
>>189を見習え。

だからお前らゆとりは死ねって言われるんだよ。
2018/09/23(日) 20:11:03.68ID:s0cMomwdM
論点おかしくないか?
スレの趣旨を考えろよ
2018/09/23(日) 20:19:56.90ID:2VtMIRxv0
>>205
それは俺に言ってるのか?

ならばお前も根本的に勘違いしている。
流れがおかしいと思うのなら、お前が流れを正すレスをすれば済む。
他人のレスを期待するのは間違いだ。

お前には違う受け方も見えていたのなら、お前が横レスで受ければいい。
俺が横レスについて文句を言うことはない。
そして指摘の通り、俺はそっちには受けなかった、これはその通り。
しかし、どっちに受けるかは勿論本人の自由だ。
そして、放置された話題を続けたいと思うのなら、お前が横受けすれば済む。

勝手にやれよ。俺は参加しないが。
2018/09/23(日) 20:28:20.20ID:eq3kKmf90
>>203
悔しいんですね。
208デフォルトの名無しさん (ワッチョイ 469f-coYL)
垢版 |
2018/09/23(日) 21:59:52.18ID:s92HkKLC0
>>200
やはり何かのスイッチが入っちゃったんだろうなあ・・・
2018/09/23(日) 22:05:27.70ID:A9/M/+R7M
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?

プークスクス
2018/09/23(日) 23:41:36.70ID:YEpQkxBa0
>>209
211デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/23(日) 23:49:09.60ID:cRG95Xcq0
低学歴知恵遅れは質問には答えられないくせに
こういう質問と一切関係ない話題にだけは
とても強い関心があるのがよくわかるわ

しかも質問したヤツはこのスレを見てるとは到底考えられない
不毛な低学歴知恵遅れたちの争いだけがひたすら続く
2018/09/23(日) 23:53:23.11ID:YEpQkxBa0
> なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
> こういう質問と一切関係ない話題にだけは

もうやめて、お腹痛い
213デフォルトの名無しさん (アウアウウー Sa25-dz4b)
垢版 |
2018/09/23(日) 23:55:00.19ID:x91orYN2a
>>209
と言うか、レス先が分からなかった通りすがりだが、LLみたいなどんな型にもなれるって意味でvoid使えるは使える。
Java のキャリー地獄みたいになるから推奨はされてないが。
2018/09/24(月) 00:17:52.05ID:Fuo9Kdvg0
>>37
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
Javaスレで相手にされなくなってたアイツじゃね
2018/09/24(月) 00:21:58.21ID:/Z9skFPV0
>>213
それは void* で、引用元は>>37
状況知りたければ18から全部読め。(ただし中身は無い)

> Java のキャリー地獄
これは何?JavaならObjectで多態では?
なお回答先はJavaスレ(以下)でも構わない。俺がそっちに行く。
https://mevius.5ch.net/test/read.cgi/tech/1518252580/
216デフォルトの名無しさん (アウアウウー Sa25-dz4b)
垢版 |
2018/09/24(月) 00:27:00.84ID:rSek34EXa
まだレスが少ないならともかく、全部は読まんw
217デフォルトの名無しさん (アウアウウー Sa25-dz4b)
垢版 |
2018/09/24(月) 00:28:36.24ID:rSek34EXa
流石に全部は読めんw
ただ、元を読む限りただの引数なし関数やね。
2018/09/24(月) 00:33:34.74ID:/Z9skFPV0
>>217
文法の不具合を解消する為の方策だ。
詳しくは>>64内URL参照。
219デフォルトの名無しさん (アウアウウー Sa25-dz4b)
垢版 |
2018/09/24(月) 00:37:29.32ID:rSek34EXa
くう。。。
今からだとあぼーん多過ぎていまいち。。。

新旧の文法上だと言うのは何となくわかった。
まさかautoでは無かろうが。
2018/09/24(月) 10:09:26.60ID:twjLvrgB0
auto というと、C++では型推論してくれるんだっけ?
C言語だとただの自動変数を表すキーワードだからほとんど誰も使ってないと思う。
2018/09/24(月) 11:23:55.24ID:GIs1tf8Y0
型指定子がなかったBの名残りってだけで
Cでは死産と言っていい状況だね
2018/09/24(月) 17:33:54.42ID:eFHr5qJjM
同じものがある順列を列挙するCのコードってどこかにないかな?
PEPPERとかMISSISSIPPIとかを並べる順列を列挙したい。
2018/09/24(月) 18:04:59.62ID:JEmRy2N3M
ただの木構造でわ?
2018/09/24(月) 22:36:13.96ID:eFHr5qJjM
>>222
自己レス
英語で検索したらみつかりました。

https://www.geeksforgeeks.org/print-all-permutations-of-a-string-with-duplicates-allowed-in-input-string/
2018/09/24(月) 23:35:26.40ID:/Z9skFPV0
>>224
普通はcarとcdrで再帰降下して、重複を取り除く為にアホみたいにN^2/2回比較して終わり。
この単純実装で十分だと思うけどね。メモリ食うけど。
そのサイトの実装は、速そうには見えないけど、メモリは食わないね。
2018/09/25(火) 11:39:13.66ID:sI9HCV5SM
>>225
再帰使ったコードどこかに落ちてない?
自分で書く能力ないので既成品で速度比較してみたい。
2018/09/25(火) 13:48:31.42ID:4xZhtJ+zM
自分で書いた方はえーわ
そして書けないってまずいわ
さらに自分で考えないってもっとまずいわ
2018/09/25(火) 19:20:45.10ID:A0N9+kL10
>>226
Cでその態度はグーで殴られるだろう。

なお225、再帰時に毎回sortして重複枝を刈れば、列挙後の比較は不要となりメモリは食わない。
ほぼ224と同じになるが、これが最速でもっとも簡素な気がする。
224は単純に全降下ではなくswapして降下先を選んでいるが、これの利点はよく分からん。
2018/09/25(火) 22:34:27.02ID:4xZhtJ+zM
>>225
carとcdrってCでも使う言葉なの?
最近scheme初めて知ったんだけど
2018/09/25(火) 22:37:06.69ID:CZcrESgD0
>>229
>carとcdrってCでも使う言葉なの?
あんまり聞かない…
231デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 22:37:56.77ID:Ig86RmNy0
OSの体系的な質問で申し訳ないんですけど
VisualStudioで作ったC言語の計算アプリがあるんですけど
これはMacでも動くんでしょうか?
それともMacにいったんVisualStudioをインストールしないと駄目なんでしょうか?
聞くに、C言語は低級言語なので動かないOSはない、C言語自体が完全ネイティブ環境
だとも聞いたのですがどうでしょう?
2018/09/25(火) 22:42:03.59ID:1135EyDF0
コマンドラインで起動するコンソールアプリで
C言語の標準的関数しか使っていないなら
ほぼそのまま動かせると思いますが、
Windows固有のAPI使っている場合は
手直ししないと無理かと思います
2018/09/25(火) 22:42:10.10ID:CZcrESgD0
>>231
main() を定義しているファイルをここ
https://www.ideone.com
に晒してくだされば、判断いたしましょう
2018/09/25(火) 22:44:39.75ID:fKl9B6Sya
VS for Macとかコードの互換性あるんでねえの?
バイナリは別としてさ。
235デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 22:50:44.42ID:Ig86RmNy0
>>232
うん???www
WindowsAPIってのはC言語で実装されてるから問題ないのでは?
2018/09/25(火) 22:54:26.26ID:1135EyDF0
WindowsAPI毎Macに移植するのであれば、動くかも知れませんね
2018/09/25(火) 23:06:10.30ID:CZcrESgD0
>>235
>WindowsAPIってのはC言語で実装されてる
win32api(≒WindowsAPI) は C から呼び出せるようになっているのではありますが、
win32api の実体が存在するかどうかは、また別の話になります
mac にて windows 向けのコードを実行させるための手段があるかどうかは、私にはよくわかりません
(wine とかが移植されているのですか?)
238デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 23:09:30.90ID:Ig86RmNy0
>>237
WindowsAPIを書いてる言語はバイナリってことですか?
2018/09/25(火) 23:18:34.02ID:HAbRzuEs0
ソースコード全部をgithubに乗せれば話は早いです
要するに、現物を見るのが手っ取り早いです
240デフォルトの名無しさん (ワッチョイ 42d2-MW2F)
垢版 |
2018/09/25(火) 23:18:38.51ID:SjmRGAva0
CPU
OS
ソースコード
実行ファイル
ライブラリ
API
この辺の理解がごっちゃになってるな
もしくは釣り
2018/09/25(火) 23:23:33.73ID:1135EyDF0
試しに、VCではなく、GCCコンパイラ使って、
ソース修正せずに実行プログラムが作成出来るかな?
242デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 23:37:13.97ID:Ig86RmNy0
>>240
釣りではないです
大学では
バイナリ→アセンブリ→C言語→WinAPIやJava→高級言語(DirectXなどのライブラリ)
→統合環境(VisualStudio)
の順番で言語規模が高性能化するって習いました

高級言語→C言語にするには実行環境が必要ですが
そもそもC言語であるならば、OSが直接読み込める形であるのだから
どんなOSでも動くという理解です。

間違っていますか?

大学でしないといけないのはプログラミングではなく言語体系についての
理解をレポートにしなきゃならないので
2018/09/25(火) 23:41:58.98ID:Jw6NGqaL0
中学生が背伸びしてるのかと思ったが大学生かよ。
2018/09/25(火) 23:42:20.18ID:AGUJmjmE0
>大学では
>バイナリ→アセンブリ→C言語→WinAPIやJava→高級言語(DirectXなどのライブラリ)
→統合環境(VisualStudio)
>の順番で言語規模が高性能化するって習いました

どんな教育だよ...
2018/09/25(火) 23:46:38.07ID:J8LSZpTD0
>>242
その言語や環境の並び、ざっくりしすぎというか突っ込みどころ満載でどこから訂正していいか困るレベルだよ。
テキストや教師がもんだいなのか、君がの理解不足でおかしなまとめ方をしてるのか…
246デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/25(火) 23:46:38.88ID:xp1IDT0a0
訂正するのがめんどいぐらいいっぱいまちがってる
247デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 23:53:43.26ID:Ig86RmNy0
>>246
どこらへんが間違ってますか?
間違いは財産です。教えてください。
2018/09/25(火) 23:54:12.64ID:HAbRzuEs0
>C言語であるならば、OSが直接読み込める形であるのだから
>どんなOSでも動く

しゅごい
2018/09/25(火) 23:55:06.09ID:AGUJmjmE0
>高級言語→C言語にするには実行環境が必要ですが
「そもそもC言語であるならば、OSが直接読み込める形であるのだから
>どんなOSでも動くという理解です。

C言語は各マシンそれぞれのCPUやOSに対応した適切なコンパイラとAPIでコンパイルしないと動きません。
2018/09/25(火) 23:57:02.58ID:J8LSZpTD0
>>242
まったく自分でプログラミングしてないなら実感沸かなくて当然なのだろうけど、その課題意味あるのかな。

それはともかく。
Cで書いたプログラムならどのOSでも 動く訳ではない。
Cで書かれたコードはOSぎ直接理解できるわけではない。そこでCのコードをOS上で実行できるコード(君の分類ではバイナリ)に変換する作業がいる。
その際、ターゲットとするCPUに合わせたコードに変換するから、違う種類のCPUの環境では動かない。
また、OSに関する機能は全部を自分の生成するプログラムに内包する訳ではなくて、OS側ですでに用意してあるプログラムを呼び出すだけだから、他のOSに自分のプログラムを持っていったら、呼び出す先のプログラムが存在しないので実行できないことになる。
251デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/25(火) 23:58:21.66ID:Ig86RmNy0
>>249
正しいのでしょうがよく分かりません
C言語のほうが低級なのに、高級のWinAPIでコンパイルするんですか?
矛盾してるような…
WinAPIはコンパイルされる側のような…
2018/09/26(水) 00:02:36.99ID:HESLqYz40
>>251
前提の理解が間違っているというか、APIが何者かまったくわかっていないよね。

winAPIはwindowsが予め用意してくれている機能で、一般のプログラマがコンパイルするものではない。
自分のプログラムをコンパイルするときに、くっ付けて使わせてもらうもの。
2018/09/26(水) 00:03:04.81ID:h9A6ffHl0
WindowsAPIはAPIであってプログラミング言語ではないので言語的な高級度は定義できません。
254デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:05:27.24ID:I4Gvy1+q0
すいませんまったく理解できなくてすいません
低級言語っていうのは、できることは単純だが速度が速いという認識です。
バイナリになると一切無駄が無いので実質、最速の言語だということも知っています。
APIという高度な機能をもってC言語をコンパイルするというのがなぞすぎます。
すでに単純な命令を何故コンパイルという時間のかかる処理を施すのでしょうか?
2018/09/26(水) 00:06:52.76ID:HY3LojxY0
>>242
> 大学では
お前の大学の講義資料のURLを晒せ。
今時の大学なら(学外から見えるかはさておき)普通は上げてるだろ。

おかしいのがお前の頭か講義資料か先生かは切り分け出来る。
256デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/26(水) 00:08:13.65ID:nZ7x0XR+0
まずいまどきアセンブラなんか手書きでなんか書かない
C言語をコンパイルするとアセンブルしてしてアセンブラをコンパイルする
すると実行モジュールができる(コレがチミがバイナリと読んでるものになる)

WinAPIやDirectX APIはOSが提供するアプリケーションインターフェースになる
それをさっき書いたC言語から利用することができる

で、C言語に限定されないが、そういった開発を
知恵遅れでもできる環境を提供するのがIDEとよばれるものだ
当然、viでコードやmakefileをシコシコ書いてコンパイルするのもありだが
今時いちいちそんなめんどいコトやってるヤツは希少種といっていい

とりあえず今ココではJavaはおいとく
257デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:09:35.96ID:I4Gvy1+q0
なんか根本的な事を教えてくれて泣けてきます
wiki見ても端折ってばかりで理解できなかったんで嬉しいです
でもそれでも分かりません…
2018/09/26(水) 00:09:53.01ID:h9A6ffHl0
>>254
すみません、APIをコンパイルではなくAPIをリンクの間違いでした。
259デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:11:25.00ID:I4Gvy1+q0
知恵遅れでもできる環境

僕が使ってるのはCygwinとVisualStudioですね
学校の課題はCygwin推奨ですが、何故かVisualStudioも入れられましたw
2018/09/26(水) 00:13:32.35ID:OuxizmKlM
>>257
まず、windowsAPIはC言語等の関数として提供されてるのはわかる?
そんでその関数のソースコードは公開されていない。だから、自分が書いたソースコードだけをmacに持っていってもソースコードが足りないので動かない。

仮にソースコードを手に入れたとしても、内部でwindowsのカーネル(コアとなるソフト)だけが提供している機能を利用使って実装されているから、やはりmacに持ち込むことはできない。
2018/09/26(水) 00:14:11.60ID:HESLqYz40
>>259
余談だけど、半角カナにこだわりのある通称半角クンに知恵遅れとか言われても気にする必要ないぞ。彼にとってただの二人称代名詞だから。
2018/09/26(水) 00:16:23.80ID:0JN26GcE0
>>256
ワイは希少種やったんか
世間じゃカーネルモジュールはどんな開発環境でやってるんや?
2018/09/26(水) 00:17:32.29ID:h9A6ffHl0
オレが書いたC言語のプログラムを機械語に変換すればようやくコンピュータで実行できるようになります。

APIは既に機械語に変換されているか、オレの書いたC言語と一緒に機械に変換されてからオレの機械語と結合して使われます。
264デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:17:40.67ID:I4Gvy1+q0
>>260
まったく分かりません
WinAPIがC言語が混ざったらもう何がCでAPIなのか
もうわけわかりません
265デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/26(水) 00:18:24.20ID:nZ7x0XR+0
で、javaはコンパイルするとバイトコードに変換される
で、そのできあがったバイトコードはJavaVM(コレがチミがバイナリと読んでるものになる)で動かすことができる
昔のpascalのpコードのパチモンと考えればいい

そっから、さらに進んでバイトコードをjitコンパイラでコンパイルするしくみもあったりする
それ使うと実行モジュール(コレがチミがバイナリと読んでるものになる)ができてしまったりもする
ただ、その実行モジュールはターゲットマシンでないと動かない

で、当然、javaもeclipseみたいなIDE使って開発できる

わかった?
266デフォルトの名無しさん (ワッチョイ 42d2-MW2F)
垢版 |
2018/09/26(水) 00:18:39.07ID:ZP32HEFJ0
>>254
低級・高級(Low-Level/High-Level)は
言語体系がハードウェア実装=CPUに近いか
人間語に近いかどうかの話で
性能とは一切関係がない
(という話は確実に教科書に書いてあるはず)

CPUはバイナリしか解釈しないから
どんな言語を使ってもコンパイル作業が要る
2018/09/26(水) 00:22:18.55ID:OuxizmKlM
>>264
とりあえず、Cで何度かプログラム書いてみたらいいんじゃないかな。
知識だけ身につけると頭でっかちになっちゃうからね。
268デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:23:21.36ID:I4Gvy1+q0
>>266
C言語は言語の中では最速だというのは教科書に書いてましたよ
2018/09/26(水) 00:24:33.00ID:T1RBGvug0
>>264
Cで書いたソースの多分先頭付近に並んでいると思う
#include で始まる行の部分だけでも公開してみて
WindowsAPIの為に入っている行を取り除けば
(このままではコンパイルエラーになるかも知れないが)
Wacに持っていく入り口にはたどり着ける
270デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/26(水) 00:26:15.28ID:nZ7x0XR+0
たとえばmacで
WinAPIと同じインターフェースもつ同じ機能のAPI(書くことができるかどうかは別ににして)を
Cで書くとmacでwindowが動く

時間があるならついでに
なんで、POSIXというもんがあるか調べてみるといい
271デフォルトの名無しさん (ワッチョイ f1e9-7de5)
垢版 |
2018/09/26(水) 00:26:28.94ID:I4Gvy1+q0
>>269
#include<stdio.h>
int main(void)
{
〜中身〜
}
です。
int main
stdio.h
の二つはおまじないと聞きました
2018/09/26(水) 00:31:29.48ID:T1RBGvug0
>>271
ホントにそれだけなら、そのまま
Macに持って行けるんじゃないか?
あとはMac側でコンパイラが使えるかどうか、だな
VCでないと困る事ある?
MacでやるならXcodeと言うのを使った方が良いように思うが
2018/09/26(水) 00:32:08.86ID:OuxizmKlM
最初にWindowsAPIなんて言い出したやつは出てこい!!

  ドッカン   ゴガギーン
    _ ドッカン  ☆
===( )   /
`∧∧_||___ ∧∧
(  )|||   |(Д`)
f  ⌒~ ||   ||  \
|  / ̄ |   |/| / /
|  |  | ヘ/\|_/ /
|  | ロ|ロ\/\(_ノ)
( (_ \ |   | Y /
| ||\ ヽ|   | ||
| || / / |   | ||
| ||/ /_|___| ||
(_(_)     (__)
274デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/26(水) 00:32:38.48ID:nZ7x0XR+0
そういうコードだったら
macでコンパイルしなおせば
普通に動くハズ
2018/09/26(水) 00:33:06.80ID:HESLqYz40
>>268
C言語が速いんじゃないんだよ。
C言語で書かれたソースをコンパイルして生成されたバイナリコードが速いんだよ。それはCPUが直接実行できる形式だから。
別に他の言語でも、コンパイルしてバイナリコードが生成できるものは、本質的にはCと同じ。

遅いのは、バイナリコードを生成せずに、その言語固有のコードを生成して、それを別のプログラムが解釈しながら実行するようなタイプの言語だよ。例えばJAVAのような。(実行時コンパイルとかはこの際おいておく)
2018/09/26(水) 00:33:58.19ID:0JN26GcE0
>>271
おまじないは一個要らへんで
$ cat test-printf.c
int main(void)
{
printf("Hello\n");
return 0;
}
$ gcc test-printf.c 2> /dev/null
$ ./a.out
Hello
277デフォルトの名無しさん (ワッチョイ 42d2-MW2F)
垢版 |
2018/09/26(水) 00:34:42.00ID:ZP32HEFJ0
>>268
それは教科書がおかしいか誤読してると思われる
「現代の高級言語の中では最速のバイナリをビルドできることが多い」
とかならまあありだが
2018/09/26(水) 00:37:18.40ID:3GYry5Z9a
OSによって動くコード(アセンブリ)が違う

CでもC++とかで書いたコードをコンパイルする時にその対象のOSで動くように機械語に変換される
なので同じCやC++のコードでもコンパイルできれば動くプログラムが作成できる

しかし、標準ライブラリ以外はその対象OS用に用意されていない場合もあるのでそういうライブラリを使用した場合コンパイルが出来ない
2018/09/26(水) 00:37:56.89ID:tnf9UX1gM
ちょっと教科書名教えてくれwww
280デフォルトの名無しさん (ワッチョイ 42d2-MW2F)
垢版 |
2018/09/26(水) 00:38:29.20ID:ZP32HEFJ0
てかレポート出すような講義で「おまじない」で済ますもんなのか最近は
最初の質問もexeをそのままMacに持っていって動きますか?だったのかも
281デフォルトの名無しさん (ワッチョイ c980-yqSl)
垢版 |
2018/09/26(水) 00:43:17.15ID:nZ7x0XR+0
cygwin入ってると書いてあった
きっとgccもはいってるハズ
手動でコンパイルすればすぐに実行モジュールができるハズ
2018/09/26(水) 00:45:01.24ID:9UO6BO9+0
>>231
標準入力やファイルからテキストのデータを読んで計算してから標準出力またはファイルに出力するような
ほとんど計算しかしないようなやつなら何一つ変えずにコンパイルできる可能性がある。
しかしGUIで入力を受け付けてGUIで結果表示みたいな作りの場合はその部分だけMacに合わせて変更する
必要があると思う。(もし互換性のあるライブラリがあるのであればそれをリンクすればなんとかなるが)。
2018/09/26(水) 00:45:48.08ID:9UO6BO9+0
しまった。リロード忘れて書いてしまった。
2018/09/26(水) 01:37:55.43ID:P+3GV8ah0
バイナリは、各CPU に固有のもの。
intel・AT&T では逆に書く

; for intel syntax
mov eax, 1

# for AT&T syntax
mov $1, %eax

これらを抽象化する層、仮想アセンブラのLLVM ができた

C → LLVM → 機械語
2018/09/26(水) 02:25:42.64ID:p8TYnMT50
テキストファイルを#includeしたりするのっておもしろそうと思った。
#include "file.txt"
使い道がほとんど思いつかんけど。
正規化されたcsvファイルなら有用かもしれない。
286デフォルトの名無しさん (ワッチョイ 469f-coYL)
垢版 |
2018/09/26(水) 02:56:13.26ID:9UO6BO9+0
>>285
XPM や XBM フォーマットの画像ファイルは中身がテキストファイルでC言語になっているので、
プログラム中で使いたい時に #include で読むなんてことを昔やった事がある。
今でも画像を編集するソフトではそういうフォーマットに対応しているのがあるかも知れない。
あったら画像をファイルに保存後に中身をテキストエディタで見てみると良い。

XBM
http://sei.qee.jp/docs/graphics/xbm/index.html
https://en.wikipedia.org/wiki/X_BitMap
XPM
https://ja.wikipedia.org/wiki/XPM
2018/09/26(水) 02:57:00.82ID:tnf9UX1gM
ただしコンパイルはできるかな?
2018/09/26(水) 03:16:42.67ID:p8TYnMT50
XPMか。FVWMあたりのソースコード見れば実際に利用してるところがあるかもね。
なぜFVWMかと言うと ある程度小さくて読みやすいかなと思ったから。
2018/09/26(水) 04:48:38.00ID:p8TYnMT50
ていうかさ なんで
#include "file.txt"
なんていうことをやろうかと思ったかというとさ,

よくアプリケーションのオプションで--helpみたいなオプションがあってそれを指定すると
標準出力にヘルプ情報を吐き出すじゃない。
で,普通それを実現するには,print_help()関数みたいなのを作って
その中で
puts("Usage: xxx [-dx] <file>...");
↑こういうのをずらずら書きならべると思うんだよ。
http://git.savannah.gnu.org/cgit/hello.git/tree/src/hello.c#n127←こんな風に。
で,そのヘルプファイルを外部ファイルにできないかな〜と思ってさ。
print_help() {
puts("
#include "help.txt"
");
return 0
}
こういう感じで。もちろんこれはコンパイルエラーになるけど。
2018/09/26(水) 06:52:38.46ID:ME0063O80
普通にfopen(),fgets()しろよ
291デフォルトの名無しさん (ワッチョイ 2ee8-IBuP)
垢版 |
2018/09/26(水) 07:02:15.89ID:KRhEkOMN0
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;  #include "file.txt"
  ヾ;;;ハ    ノ       .::!lリ;;r゙
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f.   俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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