#include ←俺はC言語の勉強を諦めた

1 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:27:28.990 ID:et3r2gS80
はい
2 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:28:01.361 ID:CIg4yuyQp
早めにセンスないって気付けてよかったじゃん
3 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:28:10.832 ID:4bpJAWlc0
すたぢおエッチ
4 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:28:35.539 ID:TPvTEnS5M
それ最近までスタジオ.hだと思ってた
5 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:28:52.895 ID:mESe+1L10
おまじないです←最高に馬鹿
10 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:30:33.446 ID:P+hKHzT0a
>>5
こいつが初学者の邪魔をしてる
おまじないとか書いてる本は信用しちゃならん
11 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:31:26.096 ID:6zIxRFi70
>>10
別におまじないでもよくね?
機械語への変換も魔法みたいなもんじゃん
17 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:34:39.988 ID:hTmbg12R0
>>10
最後までおまじないで済ませるのはあかんけどあとで説明するならおまじないでもいいよ
どうせ先に関数とプロトタイプ宣言について解説しないとあかんし
printfみたいな可変長引数でHello Worldしてるほうが混乱を招く
18 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:35:19.928 ID:ddEPX7ND0
>>10
苦しんで覚えるCは神だね

↓サイトより引用
前項で、printf関数を使ったプログラムは完成したはずなのですが、
実は、このプログラムは準備不足なので、動かしても画面に文字は表示されません。
お節介を焼くコンパイラでは動いてしまいますが・・・

実は、printf関数は、C言語自体の機能ではありません。
言い換えるならば、C言語のコンパイラは、printfという関数のことを全く知りません。
従って、ただprintf関数を記述しただけでは、動かないのです。
動作させるには、コンパイラにprintf関数の説明書を読ませなければなりません。

C言語には、説明書を渡すための特別な命令が用意されています。
それは、#include(インクルード)疑似命令です。
#include疑似命令は、次のようにして使うことが出来ます。
疑似命令疑似命令とは、プログラムコードではない命令のことです。#includeはprintf関数などの準備をする命令なので、 この命令は機械語に翻訳されず、その前段階で処理されます。#include <説明書のファイル名> printf関数の説明書は、stdio.hと言うファイルです。
つまり、次のようなプログラムを追加すれば、printf関数を使えるようになります。
ところで、この命令はどこに書けば良いのでしょうか?
プログラムの説明書を渡すのですから、プログラムが実行される前である必要があります。
プログラムが実行されてしまった後では、説明書を渡しても手遅れなのです。
このことから考えて、1番先頭(main関数よりも先)に書くのが良さそうです。
つまり、printf関数で画面に文字列を表示するプログラムは、次のようになります。
なお、#includeは疑似命令なので、関数の外側に書くことが出来ます。

24 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:41:09.557 ID:ZJ3HqSpgp
>>18
それ、初学者にとってはレベル高すぎて不適格でしょ
26 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:42:56.770 ID:TXA21EFPa
>>24
世の中には理解力の高い初心者というのもいてだな
29 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:44:14.088 ID:4bpJAWlc0
>>26
バーカ
32 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:45:28.726 ID:TPvTEnS5M
>>24
printfとだけいきなり言われてもwindowsにはわからんのです
でもwindowsにstdio.hという名前の説明書を渡すとwindowsはprintfを理解し、実行してくれます
というわけでwindowsに説明書を渡しましょう
#include <stdio.h>

ってことだろ
無駄な話多いけどかなり有能だぞ

35 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:46:04.747 ID:akQX08gD0
>>32
windowsなのか?
37 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:47:01.932 ID:ddEPX7ND0
>>24
苦Cは初学者に何故を手取り足取り教える入門サイトだぞ
ポインタとかも割とハードレベルから説明してる
44 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:58:22.086 ID:Ueh92g4md
>>18
>printf関数は、C言語自体の機能ではありません。
ANSI C標準規格にないって意味なの?ちゃんと?

>ただprintf関数を記述しただけでは、動かないのです。
パソコンなら普通は動きます

>コンパイラにprintf関数の説明書
コンパイラにprintf関数の説明書とは具体的に何?

>#includeはprintf関数などの準備をする命令なので
違います

>プログラムが実行されてしまった後では、説明書を渡しても手遅れなのです。
プロトタイプはコンパイルのためにあるのであって、
プログラムのためと言っているこの説明は誤り

ドヤ顔でほぼ全て間違ってる神文章

45 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:00:24.770 ID:LVyAIct00
>>44
難癖でワロタ
46 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:00:56.249 ID:TGBI70Xy0
>>44
アスペかよ
48 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:02:22.785 ID:AHHtsvLDM
>>44
さすがに逆張りがすぎる
日本語で説明し始めたらちょっと待ってそれ何語で話してるわけ?とかツッコミ入れそう
52 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:05:02.027 ID:o5aifg52p
>>10
最初からStanderdIOライブラリを読み込む構文ですとか言ったらみんな投げちゃうからじゃない?
6 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:29:07.084 ID:kTyrSKdF0
ひょうずんにゅーしゅつりょくな
7 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:29:35.806 ID:hTmbg12R0
gccならincludeしなくてもprintf使えるしな
8 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:29:40.894 ID:I79uUSGm0
全く同じスレタイを前にも見た
これ流行ってんの?
9 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:30:31.624 ID:6zIxRFi70
>>8
みんな思うからな
12 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:31:44.893 ID:ZJ3HqSpgp
意味はあるけどとりあえず書いときゃ問題ないし、
深く理解したいなら中身を見てみて、ってだけでしょ
13 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:32:12.561 ID:JwFoXARo0
後半でなんか習った気がするけどガチでおまじないしか覚えてない
14 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:32:48.281 ID:3cHDOoMC0
stdlib.hの人気のなさ
22 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:39:18.895 ID:TPvTEnS5M
>>14
絶対値くらいしか……
34 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:45:56.403 ID:3cHDOoMC0
>>22
assert.h
ctype.h
stdarg.h
stddef.h
stdlib.h
stdio.h
string.h
time.h
この辺は必須じゃないの?
15 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:33:23.122 ID:HDp6p+D20
スタンダードじゃない入出力欲しいです
アナルセックス的な
16 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:33:41.564 ID:GUQlE/Ax0
printfやscanfなどを使えるようにするためのもの
19 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:36:41.590 ID:akQX08gD0
関数やったらわかるだろ
20 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:37:55.321 ID:6LbvJCb5r
いきなりシステムコールとか言われても挫折する自信あるしおまじないでいいだろ
21 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:38:29.255 ID:/ioC+JQoM
おまじないって書いてある本は買わなくていいぞ
23 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:39:49.076 ID:6LbvJCb5r
gccでコンパイルしたら実行ファイルが出来るのも呪文じゃん…
25 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:42:03.540 ID:HL/2FShbM
簡単なことなのに難しい言い回しする人いるよね!
28 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:43:57.091 ID:hTmbg12R0
>>25
厳密に説明しないと袋叩きにされる文化のジャンルもあるからしゃーない
27 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:43:17.062 ID:fyOVAHzU0
最初にやるようなコード関数宣言しないし…
おまじないでもいいよ最初は
30 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:44:20.989 ID:P+hKHzT0a
プログラミングの学習は「実感できるか」がすべて
“おまじない”は実感の機会を減らすゴミ
簡単に「○○を使うために読み込んでます」くらいでいいから
どんな感じの働きをしているのかは把握させておくべき
頭に不明点があるとそれがしこりになって学習を妨げる
31 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:45:06.406 ID:aYi5wCfr0
>>30
原理主義者め!
お前が教科書を書け!
33 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:45:45.586 ID:TPvTEnS5M
無駄というか初学者にはよくわからん話か
36 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:46:59.906 ID:3cHDOoMC0
windows.hもあるんだぞ
38 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:47:52.256 ID:3cHDOoMC0
デストラクタをvirtual宣言しない無能
39 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:49:26.986 ID:ddEPX7ND0
変数の説明をこれぐらいしてくれればポインタも理解しやすい

↓サイトより引用
前項で考えたことを実現する機能がC言語には存在します。それが、変数です。
変数と聞くと、数学を思い出してイヤになる人も多いかもしれませんが、
プログラミングの変数と、数学の変数とは、全くの別物です。

変数とは、数値を保存しておくためのメモリ領域に名前をつけることです。
これ、ほとんどの入門書では、数値を入れておく箱と説明しますが、
こんなのは、誰もコンピュータに触ったことがなかった時代の説明方法でしょう。
コンピュータをそれなりに使っている人には、メモリと言った方がすっきりします。

コンピュータのメモリとは、横1列に膨大に並べられたロッカーのような構造です。
ロッカーの端っこから、1つ1つに番号がつけられています。
そして、コンピュータで扱われる数値は、そのロッカーのどこかに入っています。

普通ならば、そのロッカーの番号を元に、数値を入れたり出したりするのですが、
毎回毎回、長ったらしい番号をつかっていては面倒なことこの上ありません。
皆さんも、7桁の社員番号でロッカーを区別したくはないだろうと思います。

そこで、それぞれのロッカーに、名前をつけておくことにします。
こうすれば、名前を見ることで、それが何のためのロッカーなのかすぐにわかり、
また、扱いもとても簡単になると言うわけなのです

40 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:49:49.975 ID:aYi5wCfr0
入門書の次の本「みなさん!よく頑張ってC言語の入門書を読み終えましたね!とってもえらいです!
次はC言語でWindowsで動くアプリを作ってみましょう!それではまずint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstanceビーガービー」
41 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:50:29.590 ID:fyOVAHzU0
苦Cより明解派
42 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:52:17.165 ID:hTmbg12R0
苦Cもscanf使う時にアドレス指定子の説明は後回しになってるからそんなんでいいと思うわ
構成がとっちらかるしね
おまじないって言葉自体が嫌なら表現変えればいいね
43 名前:一般よりも上級の名無しさん 投稿日時:2020/02/14(金) 23:53:11.035 ID:P+hKHzT0a
昔読んだ「配列が何故0から始まる?」みたいな質問から始まって
「分からんお前もこの本を読み終わる頃には理解できるぞ」って書いてる本が分かりやすかったが
古い本だから名前忘れた
47 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:02:02.757 ID:JII05J0C0
C言語は有望な言語だが人様にCを教えようとするカスはC11はおろかC99すら一ミリも知らなそうだから嫌い
49 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:02:24.635 ID:1CpEuyHg0
using namespace std;はあまり槍玉にあからないよな
50 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:02:56.538 ID:JII05J0C0
>>49
それはC言語ではない
51 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:04:26.605 ID:0O2oS3mC0
>>49
これ絶対使いたくないんだけど
名前衝突したらどうすんの
54 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:07:09.032 ID:1CpEuyHg0
>>51
ビジネスロジッククラス()は名前ぶつけない自信があるんじゃないの、しらんけど
53 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:07:04.567 ID:COKM+6/7a
とりあえず初心者はC#→C→C++→C#の順で
3年くらいかけて勉強すれば良いよ
55 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:08:34.047 ID:JII05J0C0
Linuxの入門書にはファイルディスクリプタについて書いてあるのにプログラミングの本がIOの説明を忌避するのはよく分からんな
56 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:08:42.923 ID:3LTVbAKD0
BASICで挫折した俺よりマシ
57 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:09:53.552 ID:COKM+6/7a
>>56
BASIC系の言語は「初心者でも理解しやすい!」を売りにした
クソ読みにくく書きにくい言語だから
58 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:12:07.417 ID:54VmFYlW0
ポインタわかるかどうからへんでセンスあるか分かる
59 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:12:15.890 ID:BsG4aBkY0
おまじないはマジ無い
60 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:14:09.147 ID:PbhcIKV90
BASICよりはHSPを奨めるわ
61 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:14:18.022 ID:1CpEuyHg0
関数ポインタの配列は使いどころが考えつかなかった
コールバックでつかっていいのあれ?
63 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:18:16.661 ID:COKM+6/7a
>>61
ある処理群を決まった順番でいくつかの場所で実行したいけど
もしかしたら順番が変わるかもしれないって時に使ったわ
66 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:33:47.713 ID:1CpEuyHg0
>>63
苦労してたんだなーおつかれさま
62 名前:一般よりも上級の名無しさん 投稿日時:2020/02/15(土) 00:17:33.841 ID:JII05J0C0
ポインタがわかるというのがよくわからない
ポインタがわかる人はスマートポインタやRAIIまで全く躓かずに理解できるのだろうか(C++に話がずれる)

コメント一覧

タイトルとURLをコピーしました