2ch勢いランキング アーカイブ

C言語なら俺に聞け 148


デフォルトの名無しさん (アウアウカー Sacf-slpW) [] 2018/09/19(水) 17:56:50.83:XSTNMnDwa
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
ttp://https://paiza.io/
ttp://https://ideone.com/
ttp://http://codepad.org/

C11
ttp://http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf

C99
ttp://http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
ttp://http://kikakurui.com/x3/X3010-2003-01.html

C FAQ 日本語訳
ttp://http://www.kouno.jp/home/c_faq/

JPCERT C コーディングスタンダード
ttp://https://www.jpcert.or.jp/sc-rules/

※前スレ
C言語なら俺に聞け 147
ttp://mevius.5ch.net/test/read.cgi/tech/1534430162/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
デフォルトの名無しさん (ワッチョイ 9f02-okpm) [sage] 2018/09/19(水) 18:46:51.43:5wa+YDhW0
JPCERTに書いてある
> DCL12-C. 抽象データ型は opaque な型を使って実装する
これ、言葉遣いが JIS に準拠してないね
- opaque な型
+ 不完全型
デフォルトの名無しさん (アウアウカー Saeb-ACtO) [sage] 2018/09/19(水) 18:51:06.87:SdGhFMnDa
おぱきゅー
さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-knbE) [sage] 2018/09/19(水) 18:52:22.93:sSjeJI6sd
おぺいきゅー
デフォルトの名無しさん (ワッチョイ 5793-mIvp) [sage] 2018/09/19(水) 20:53:36.31:6LbAKjXm0
あのね opaque を「おぱきゅー」と読むとね、
中がどうなっているか見えないって感じがヒシヒシ伝わるんだよ。
デフォルトの名無しさん (アウアウカー Saeb-slpW) [] 2018/09/19(水) 21:01:51.92:zcXFtBV7a
opaque音頭
デフォルトの名無しさん (ワッチョイ 7f23-okpm) [sage] 2018/09/19(水) 21:10:39.04:kKUGVzPQ0
ドラハッパー?
デフォルトの名無しさん (ブーイモ MMbb-ck2F) [sage] 2018/09/19(水) 21:40:07.01:aiIpKBDGM

寧ろ向こう側が透けて見えて意味を取り違えそうな…
デフォルトの名無しさん (アウアウカー Saeb-slpW) [] 2018/09/19(水) 21:46:14.52:zcXFtBV7a
透けるトン
デフォルトの名無しさん (ワッチョイ 9780-9b2l) [] 2018/09/19(水) 22:44:21.77:xLP4ypV20
おおきいおっぱいを占領する
デフォルトの名無しさん (アウアウカー Sae9-kke4) [] 2018/09/20(木) 12:33:56.62:irJ5n1n9a
おっぱいがキューイングされてる状態だろ
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/20(木) 12:46:40.86:rEtRtbV+a
キューは口を尖らせて発音
デフォルトの名無しさん (JP 0Hc9-e5An) [sage] 2018/09/20(木) 13:32:01.11:6Uvn6M6wH
俺氏、マジレスするタイミングを完全に失う
デフォルトの名無しさん (アウアウカー Sae9-KpFT) [sage] 2018/09/20(木) 14:06:56.92:4xeYkQf2a
不可視を不完全と呼ぶのはちょっと良くないと思うわ
まあ視点が違うんだけども
デフォルトの名無しさん (ワッチョイ 6202-coYL) [sage] 2018/09/20(木) 15:50:43.96:kJMlDz7M0
ピンプル的な意味で「見えない」なら合ってんじゃん
デフォルトの名無しさん (ワッチョイ c964-vX2D) [sage] 2018/09/20(木) 19:19:48.48:fVTsYrUH0
みんなmusl libcとか使ってたりする?
プロジェクトの内容だけみると けっこう良さげなんだけど
あまり日本語の情報を聞かないし 実際はglibcとかが大半なのかな。
デフォルトの名無しさん (ワッチョイ be23-coYL) [sage] 2018/09/21(金) 11:19:07.18:7KdLYb7A0
CはGNUが9割
デフォルトの名無しさん (ワッチョイ 6976-Syfo) [sage] 2018/09/21(金) 17:35:46.83:r4ObfaEn0
c言語本格入門のリスト構造(単方向リスト)が理解できず困っています。
書籍には図を書けば理解できるとあり、ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが、余計こんがらがってしまいます。
他のサイトや他者の質問が掲載された掲示板なども参考にしましたが、さっぱりわかりません。
図を描いても理解には繋がりません。
プログラムは250行くらいあり、掲載出来る様なサイトがあれば誘導お願いします。

ポインタの*ptr_now、*ptr_before、*ptr_new の動きと役割が理解できれば、前に進めると思うのですが、知恵を貸して下さい。
デフォルトの名無しさん (ワッチョイ c123-o0nc) [sage] 2018/09/21(金) 17:44:45.17:TewjjbP30

サイトはにあるのを使えばいいよ
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/21(金) 17:46:57.36:DzWt0PfVa
nowが今いる所でbeforeがさっきいた所でnewが新たに作る所?
デフォルトの名無しさん (ワッチョイ 6976-Syfo) [sage] 2018/09/21(金) 18:05:52.26:r4ObfaEn0

now と before は作業用領域で、newは名前とかを格納しています。
デフォルトの名無しさん (ブーイモ MM05-Nssn) [sage] 2018/09/21(金) 18:39:31.34:FeY49FdEM

とある位置に新しいデータを挿入するサンプルコードなんじゃないか?

newが新たに挿入しようとするデータのアドレス、
nowが挿入先の直後のデータのアドレス、
beforeが挿入先の直前のデータのアドレス。
(単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)


ところでnowってスケジュールリストか何かなのか
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/21(金) 18:44:04.65:M1mNaNG00

努力しているようだが、色々おかしい。

> ソースにprintf関数をところどころに入れて、ポインタの動きを追いかけていたのですが
ポインタの『動き』ではなく、ポインタの『中身』を追いかけろ。
ポインタは自然言語で言う「ポイントする(指し示す)もの」でしかないから、
正しい物を示しているかどうかだけであって、
それはポインタ自体ではなく、『中身』を見ないと判定出来ない。

> 単方向リスト
> *ptr_now、*ptr_before、*ptr_new
単方向リストならポインタは一つだけだし、
> now と before は作業用領域で、newは名前とかを格納しています。
名前の付け方が絶望的におかしい。
多分君の理解が間違っているだけだと思うが、
もしその理解が正しくて、ガチでこんな名前を付けているソースなら、
その本は今すぐ捨てるべきだ。
これはソースを上げれば誰かが見てくれるだろう。
(多分が当たりだろう)

当たり前だが、
1. まず、0,1,2,3... とリストに入れて、それを表示(リストアップ)出来る関数を作れ。
2. 次に、その関数を用いて、挿入等したとき、期待通りにリストアップ出来るか確認しろ。
3. それでバグっているようなら、その後でいちいちIDE等で止めてポインタの値を確認するんだよ。
多分お前はデバッグの仕方もおかしい。

ただまあ正直なところ、このレベルの初心者ならリストなんてどうせ使わないし、
スキップしても構わんぞ。いちいち全部やらなくてもいい。
そんなことより、ゲームを作りたいのならそのゲームを作る方向目指してコーディングしろ。
そのうち、ポインタ等の意味も分かってきて、今回の問題なんて自然に解決出来るようになる。
デフォルトの名無しさん (フリッテル MMd6-l/4I) [sage] 2018/09/21(金) 19:29:46.56:820RD++bM
いちいちそんなに長文で噛み付くようなことか?
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/21(金) 19:50:07.83:M1mNaNG00

ちなみに細かいようだが、

> (単方向リストへのデータ挿入は新しいデータを挿入する位置の前後のデータのアドレスが必要のため)
実際の所、単方向リストなら

struct List {
T value; // または T* ptr;
T* next;
};

だから、ループは now と next だけで構成しないと筋が悪いんだけどね。
ソート済みリストでデリミタがヌルポなら、

while (now->next && value <= next->value) now = next; // 同値なら挿入順

で now を確定させ、now と next の間に挿入する。
nowは「今」、newが「新」として、beforeは余計だね。
何かの説明をする為なのだろうけど、余計におかしくなってる。
(挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
デフォルトの名無しさん (ワッチョイ 42c8-coYL) [sage] 2018/09/21(金) 19:54:01.86:7TX+3hKV0
そもそもポインタ自体分かってない説
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/21(金) 19:58:44.97:M1mNaNG00

駄目な事を駄目だとはっきり言っただけだ。
怒られたことのないゆとりには噛みついているようにしか見えないのかもしれないが、
このレベルの駄目っぷりを駄目出ししてもらえない方が問題だろ。

これが許容出来ないのなら、コテハン制の他サイトに行けよ。
どんなアホな投稿でも優しく教えてくれるだろうさ。
ただそれが本人の為になるかどうかはまた別だが、ゆとりにはお似合いだ。

右も左も分かってない馬鹿なんだから普通にIDE使えよ。
printfデバッグなんて(IDEが有料だった昔はさておき)
今のそのレベルの初心者がやるもんじゃない。


まあしかし、お前がそういうのならお前が導いて見せろ。
出来もしないのに文句だけ言うのもゆとりの特徴だとも思うがね。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/21(金) 20:02:21.86:M1mNaNG00
てゆーかマジな話、250行って何だよ?
27のリストなら精々50行だろ。
色々根本的におかしい。
本ではなく、18が根本的に間違ってるんだと思うが。
デフォルトの名無しさん (ワッチョイ 42c8-coYL) [sage] 2018/09/21(金) 20:16:03.47:7TX+3hKV0

名前ってまさか構造体の名前じゃないよね・・?
デフォルトの名無しさん (ワッチョイ 2260-9U/T) [sage] 2018/09/21(金) 21:44:03.41:JP8I8TZy0

その250行と、printf() を入れてみたけれどもうまくいかなかった、という printf() の挿入場所をこちらに貼ってください
ttp://https://ideone.com
話はそれから
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/21(金) 22:15:10.02:ZlhIYDcEa
うまい釣りだ。このままじらしてじらしていつまでもソースを公開しなければこのスレは活性化して書き込みで溢れあっという間に3スレぐらい消費するだろう。流石としか言いようがない。
デフォルトの名無しさん (ワッチョイ 42c8-coYL) [sage] 2018/09/21(金) 22:19:08.59:7TX+3hKV0
悔しいでも書き込んじゃう
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 00:33:04.56:PGp2AKzL0
低学歴知恵遅れには質問の意味が理解できない
普通に質問の内容を再現すればだいたいこうなる

typedef struct tag_aho_list_t {
  char new[0x10];
  t_aho_list_t* next;
} t_aho_list_t;

ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho1");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;

ptr_new = (t_aho_list_t*)malloc(sizeof(t_aho_list_t));
strcpy(ptr_new->name, "aho2");
ptr_before = ptr_now;
ptr_now = ptr_new;
ptr_before->next = ptr_now;
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 01:01:16.23:16ZpsTnK0

お前も絶望的にダサいコードを書くな。
追加なら、

> ptr_before = ptr_now;
> ptr_now = ptr_new;
> ptr_before->next = ptr_now;

ではなくて、

ptr_now->next = ptr_new;
ptr_now = ptr_new;

だろ。
つか、単方向リストで before を使う時点で間違い。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 01:01:57.05:alaCe2UCM
で?ってゆう
デフォルトの名無しさん (ワッチョイ 6976-Syfo) [sage] 2018/09/22(土) 01:22:57.20:e+ifojdT0
遅くなりました。
ソース貼ります。

ttp://https://ideone.com/0kDpw1
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 01:42:06.64:16ZpsTnK0

マジでIDE使え。
そして貼るときはlanguageをCにしとけ。シンタックスハイライトが変わるから。
で、どれが分からんの?

> enter
> find
> delete
> show_all
> delete_all

mainはこの際分からなくていい。
最初に理解しないといけないのは show_all だ。

ただし細かいことを言ってもキリがないが、

> void show_all(void)

なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。

マジな話、このソースのレベルの本なら捨てた方がいい。
俺は大学の教材がいいと思うぞ。
(読んでないが)リストならググったら東工大とか出てきた。
ttp://http://www.is.titech.ac.jp/compview/clang/chap11.html
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/22(土) 01:44:45.64:WyfQotM3a
voidはアリだぞ。
仕事だとなぜかvoidを書けと言われるわ
デフォルトの名無しさん (ワッチョイ 4233-tHrl) [sage] 2018/09/22(土) 01:50:27.24:6j6Aecxq0

void show_all() が引数無しの意味になるのはC++。
Cだと show_all(...) と同じ意味になって何渡してもコンパイル通っちゃうからあぶない。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 01:54:37.82:16ZpsTnK0

マジかーと思って linux kernel のコード見たが、書いてるな。
そして K&R 見てみたら、なんとこれも書いてた。

旧来の記法なら書くのが正しくて、物によってはコンパイル通らないとかか?
とにかく、 void がクソだというのは取り下げる。



> Cだと show_all(...) と同じ意味になって何渡してもコンパイル通っちゃうからあぶない。
マジ?今まで聞いたこと無かったわ。

しかし ( ... ) と同じ意味なら例の va_list を使う糞コードになるから、
コンパイラのチェックが甘くなるとはいえ、間違って使うって事はなさそうだが。

まあとにかくありがとう。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 02:29:56.24:16ZpsTnK0

何度も言ってるがマジでIDE使え。
次にマジでこの本はソースがおかしいから捨てた方がいい。処理のフローがクレイジーだ。
何かおかしな規約に沿って書いているように思える。

178-205行目は、普通なら以下。

while(ptr_now != NULL && no >= ptr_now->no) {
if (no == ptr_now->no) {
if (address == ptr_now) address = ptr_now->next;
else ptr_before->next = ptr_now->next;
free(ptr_now);
return 0;
}
ptr_before = ptr_now;
ptr_now = ptr_now->next;
}
return -1;
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 02:55:23.92:16ZpsTnK0

ちなみに一応ちゃんとポインタで書いておくと、以下な。
whileの条件は分けた方が分かりやすいか?
書き込みターゲットは一つに纏める。

int delete(int no, tag_address* ptr_now) {
tag_address** ptr_tgt = &ptr_now;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 02:56:59.96:16ZpsTnK0
すまん、42は間違い。
引数を&で受けても意味無いな。書き直す。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 03:03:32.99:16ZpsTnK0
、42の訂正版

int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL) {
if (no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
}
if (no < ptr_now->no) return -1;
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
return -1;
}

君には余計に分かりにくくなったかもしれないけど、こんな感じ。
まあ頑張れ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 03:13:04.00:16ZpsTnK0

enter関数も作りがおかしい。
25で言ったとおり、
> (挿入するのは『nowとnext』の間であって、『beforeとnow』の間ではない)
このソースは before と now の間に挿入しており、明らかに間違ってる。

マジでこの本はゴミだから捨てろ。
デフォルトの名無しさん (ワッチョイ 6e5b-Nssn) [sage] 2018/09/22(土) 03:44:08.18:wyOkhzEz0
まあいいんじゃね?
処理内容毎に塊を分けて上から順番に並べているのは他人にわかりやすく説明するために都合がいいのだと思う。
きっと書籍では、N行目からM行目まではこんなことをしてます、とか、塊毎に処理内容のコメントが記述されてるのではないかと思う。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 04:34:50.74:16ZpsTnK0

いやこれはさすがにアウトだろ。
実際部下にこのコード出されたら絶句するだろ。

178行目と194行目のヌルチェックなんてダブってるし、マジで意味無い。
頭が悪い奴が一生懸命書いたコードだぞこれは。手本にするには酷すぎる。
delete関数は筆者には難しすぎて、異常系を一つずつ外して行ってるから無駄にダブってる。
だけどこの規模でこれだと絶望的だろ。
マジでこの本は捨てた方がいい。

18が読めないのは18の技量の問題だけど、
読みやすいコードと読みにくいコードというのは実際にあって、
要するに腕前がいい奴が書いたコードは一般的に読みやすく、下手くそが書いたコードは読みにくい。
(勿論高速化等かけた場合は若干読みにくくなるが)

頭が悪いのなら、関数を分けて分割すべきであって、
breakして下に無理矢理繋げているから意味不明なコードになる。

なお高速コードは以下。
int delete(int no, tag_address** ptr_head) {
tag_address** ptr_tgt = ptr_head;
tag_address* ptr_now = *ptr_head;
while(ptr_now != NULL && no >= ptr_now->no) {
ptr_tgt = &ptr_now->next;
ptr_now = ptr_now->next;
}
if (ptr_now != NULL && no == ptr_now->no) {
*ptr_tgt = ptr_now->next;
free(ptr_now);
return 0;
} else return -1;
}
デフォルトの名無しさん (ブーイモ MMb6-Tz62) [sage] 2018/09/22(土) 06:34:42.89:Ot5g8EvkM
もともこもないこというけど
カーネルの list.h 使え
デフォルトの名無しさん (スプッッ Sd0a-RfHF) [sage] 2018/09/22(土) 08:07:18.41:MIXlgiXZd
C言語で
A,B,C,D,E,F,G,H,I,J,K,Lの12個のペアを、3個ずつの4つのグループに分ける場合
例えばA,BとA,CとD,Eは同じグループに入れないとして、実行時には(ADF,BCE,GHI,JKL)みたいな感じで返すプログラミングの書き方の例を教えてください
デフォルトの名無しさん (ドコグロ MMf5-GHk6) [sage] 2018/09/22(土) 08:20:30.08:QxjPpR9VM
が言ってることすら知らないID:16ZpsTnK0が偉そうに講釈たれてて笑うわ
デフォルトの名無しさん (オイコラミネオ MMf5-KkRk) [sage] 2018/09/22(土) 08:21:44.04:d4QseA9MM

その例だと目的が分からないから、
それを何に使いたいのか具体例で書いてくれ。
デフォルトの名無しさん (ワッチョイ c193-h/KU) [sage] 2018/09/22(土) 08:32:14.74:Yqnou5lg0

このソースでは「beforeとnowの間にnewを挿入」するenter()で正しく動作するね。

リストの定常状態で、各要素はメンバnoの値で昇順整列している。
ポインタnextのつなぎ換えをする時点で、
beforeのnoは新要素のnoより小さい、nowのnoは新要素のnoより大きい、

よって new->next = now, before->next = new と格納すれば
before->no < new->no < now->no の順序が維持される。
ただし境界条件(リストの端っこの処理)はここでは考えていない。


変数やメンバの命名をもう少し工夫すれば…と思うけど。
この投稿を書いててnewとnow、メンバnoで混乱してきた。
デフォルトの名無しさん (ワッチョイ c27c-iHci) [sage] 2018/09/22(土) 08:58:29.84:bcuOiC7Q0
リスト操作に特化した関数を作ればいいのに
リスト操作といろんな処理を混ぜ込むから見通しが悪くなってる
教育目的ならなおのこと美しく書かないといけないのに
デフォルトの名無しさん (ワッチョイ 429f-m2E0) [sage] 2018/09/22(土) 09:02:41.93:l48TeZqd0

>> void show_all(void)
>
>なんだこれ?引数 void って初めて見たぞ。文>法的にありなのかこれ?

この程度の知識でも偉そうに講釈垂れる事が出来るのがこのスレです
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 09:35:47.75:7nPJqZuh0
ワロタ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 09:48:51.25:16ZpsTnK0

そりゃ糞コードでも動くだろうさ。
しかし教科書でこれはない。マジであり得ないくらい酷い。
必要のない変数を作って保持してるだろ。

走査は25に書いたとおり、(書き落とした点を修正するが)

while (now->next && value <= now->next->value) now = now->next;

でやるんだよ。そうすれば now と next だけの世界で済む。
enter()も頂けない。これはの指摘通り、
int insert(tag_address* ta) と
tag_address* make_new_element(int no, char* name, char* addr)
に分けないと駄目だ。
マジでここまで酷いのはなかなか見かけないくらい酷い。
部下がこんなコード書いたら当然突き返す会社が大半だと思うぞ。

例も酷い。これは List ではなく SortedList だし、
そもそもこれをやりたいのならCではなくC++でやるべきだし。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 09:49:43.97:16ZpsTnK0

そこで俺叩きに転じてるのが逆に、お前が馬鹿である証拠だ。
このコードは擁護のしようがないくらい酷い。ど素人でもここまで酷いコードは書かない。
お前にはそれが分からないから俺を叩こうとしてる。

お前みたいな初心者は文法のことばかり気にするが、文法の細かいところは本当に関係ないんだよ。
俺はC++コンパイラを使っているからは関係なかったし、
はそうじゃないから void を書くルールになってるんだろ。
そういうもんなんだよ。
文法的に問題があるケースはルールで禁止されてるか、環境で対策されてる。

まあ俺に文法知識が欠けているのは事実としても、この本がゴミなのは揺るがない。
理由は筆者が馬鹿だから、だから、マジですぐに捨てて他の本/サイトを参考にした方がいい。
嘘だと思うのなら、この事を覚えておいて、
数年後、お前らが上達してからもう一度このコードを見直して見ろ。絶句するから。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 09:56:21.04:16ZpsTnK0
ちなみに余談だが K&R の良い点は、糞コードがないこと、余分な表現がないこと、なんだよ。
無駄を限界まで削ぎ落とした、極めて上質なコードが掲載されている。
筆者が頭が良く、一流のプログラマだからだ。

実際の所、入門書は総じてゴミだ。
これは入門書を書く奴は一般的に一流のプログラマではないからだ。
だから入門書のコードはマジで参考にしない方がいい。
今回のは特に。

お前らが上達すれば、このコードの酷さが分かるようになるだろうさ。
今回の顛末を覚えておいて、数年後に見直して見ろ。マジで。
デフォルトの名無しさん (ワッチョイ 429f-m2E0) [sage] 2018/09/22(土) 10:10:07.07:l48TeZqd0

うんそだね〜
でもどんな言い訳してもここはC言語スレだしCプラプラコンパイラと言えどCの文法書けるわけだし
初心者に偉そうに講釈垂れるならCの最 低 限の文法くらい知ってた方がいいよ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 10:24:01.19:16ZpsTnK0

ならお前も18に対して何か為になるレスをしてから言えよ。
お前が俺に粘着する理由が分からん。

「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 10:24:32.03:7nPJqZuh0
たった2レスで粘着 w
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/22(土) 10:35:54.62:a9vdXzW90

これをやりたいならC++でやるべき、って
C言語の入門書のコード例なのに何を言ってるんだ?
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/22(土) 10:42:23.12:AEsgMTAW0
かまってちゃんなんだろう、相手してもらって嬉しそうだ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 10:42:23.23:16ZpsTnK0

そりゃそうだろ。
俺が文法を知らなかったことは本筋とは関係ないし、
実際、お前ら以外気にしてないだろ。
お前らは役に立つレスを全くしてないし、ただの粘着荒らしでしかない。


なお、知ってるかもしれんが以下だそうな。
> C99にて廃止予定機能となった。C11でどうなったかは不明
ttp://http://d.hatena.ne.jp/eel3/20141005/1412521223
仕様に詳しい人よろしく。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 10:45:11.54:16ZpsTnK0

その点は既にC++で対策されてるから。

書けば分かるが、その例のSortedListなら、C++で書いた方が綺麗に書ける。
C++はその点を対策した言語なのだから、当たり前だが。
デフォルトの名無しさん (ワッチョイ b105-yLbS) [sage] 2018/09/22(土) 10:54:19.57:BuG7Fz7K0
連投ウザ。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 10:56:24.32:rjQGIIPhM
>> void show_all(void)
>
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?

以下のコード見たことありまちゅか〜?wwww

#inlcude <stdio.h>
int main(void)
{
printf("Hello World!");
return 0;
}
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 11:02:28.11:PGp2AKzL0
こういう簡単なコードの書き方なら
喜々として低学歴知恵遅れのシロウトが喜々として一杯よってくる
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 11:09:05.39:16ZpsTnK0
つか、粘着馬鹿共は誰も役に立つことを言えてない件。
お前らが俺に粘着する意味は何なんだ?

なお、一番近いのは std:forward_list でソース例は以下だが、
ttp://https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/forward_list.h
毎回思うがGNUは別の意味で読みづらいから(マクロまぶしすぎ)
今の君には無理だが、可能ならこれを読んだ方がいい。最終的な目標にしとけ。

で既に示した東工大、斜め読みしたが、
1. before 関数 を使って list_add 関数を修正して p の「直後」に挿入
2. before 関数
だから明らかにこっちの方が筋がいい。
2の意味は分からないだろうが、これはコンパレーターであり、関数ポインタに繋がる。
こちらはそもそも教育の現場、やはりちゃんとしている。
こっち使った方がいいと思うぞ。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 11:10:50.53:PGp2AKzL0
低学歴知恵遅れはこの程度のコードしか
理解できないのがよくわかるわ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 11:13:00.76:PGp2AKzL0
まず質問と関係ない内容で喜々として得意になってレスしてる
こういう簡単な内容ならめっちゃ元気
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 11:25:44.82:16ZpsTnK0
ああ、そういえば一応には直球で返した方がいいか?なら、

*ptr_now:今エレメント
*ptr_before:前エレメント
*ptr_new:新エレメント

であり、まんまそのままだ。
ただ、単方向リストで before は履歴が必要だから、このコードは筋が悪い。
単方向リストなら、出来る限り、

*ptr_now:今エレメント
*ptr_next:次エレメント

で構成されるべきで、この場合には履歴が要らないからより単純なコードになる。
そして東工大はそうだからそっちを参考にしろ、というわけ。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ b116-yLbS) [sage] 2018/09/22(土) 11:39:44.40:i0ViPFTS0
やっと気づいた w
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 11:41:41.67:PGp2AKzL0
コードがどういう書かかたされてるとか
質問してるヤツは一切してないからな

コレは低学歴知恵遅れの自分が理解できてる範囲のことを
コレは低学歴知恵遅れがひたすら連騰してるだけだからな
つまりこの質問ではどうでもいいただのコードの書き方

質問してるヤツはどういう動作をして
どうデータが格納されてるかを質問してる

低学歴知恵遅れはなんでまともに日本語が読めないわけ
まともな教育とは思えないわ。。。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 11:45:02.82:PGp2AKzL0
(正)まともな教育を受けてるとは思えないわ。。。
(誤)まともな教育とは思えないわ。。。

つまり
まともな教育を受けてない低学歴知恵遅れが
このスレにきた初心者にえらそうにしてるわけ

わかる?
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 11:47:39.15:16ZpsTnK0

てかマジでこれが助けになると思ってるのか?
お前もしかして18なの?

なら絶望的に頭悪いし、プログラミングなんて止めた方がいい。
そしてもしこの回答を得る為にひたすら単発で煽っていたのなら、マジでウザイから止めろ。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。



ならお前が回答してやれよw
お前も回答出来ただろうし、お前はそれが役に立つと思ってたんだろ。
デフォルトの名無しさん (フリッテル MMd6-l/4I) [sage] 2018/09/22(土) 11:51:25.42:N6pdG9BDM
よくわからんけどその本の後の方の章でそのコードを改良して双方向リストの説明でもしてるんじゃないの?
入門書とかだとよく前の章のコードの説明を元に段階的に説明していく場合があるけど
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 11:51:52.67:rjQGIIPhM
ファイッwww
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/22(土) 11:57:35.70:AEsgMTAW0
ID:16ZpsTnK0 はNGでええやろ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 11:57:50.23:16ZpsTnK0

双方向リストでもこの意味分からん処理フローにはならないし、
関数ポインタを見据えている東工大の方が数段筋がいいよ。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ブーイモ MMed-Nssn) [sage] 2018/09/22(土) 12:19:33.32:ZMLQwSgJM
入門書だぞ?
汎用性や高速性なんて二の次どころか入門書では不要かもしれない。
ポインタの理解も危うい段階でダブルポインタとかlist.hを提示するとか狂気の沙汰だわ。

もしもID:16ZpsTnK0が入門書を書いたらいきなりハードモードでそれこそ役に立たないから即捨て間違いないわ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 12:30:11.20:PGp2AKzL0
こんな簡単な質問の回答能力があるヤツはいないか
まずenter()関数をみなさい

まず一回目のenter()で動く箇所はココになる

while (ptr_now != NULL) {
  ・・・ ← ココ
}

if (address == NULL){
  ・・・ ← ココ
}

それ以外は
一回目と一回目以外、enter()では同じ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 12:31:13.43:PGp2AKzL0
次にココをみなさい

if (no < ptr_now->no) {
  break;
}

if (address->no > ptr_new->no){
  address = ptr_new;
printf("address(enter)=%p\n", address);
}

ココでなにやってるか
次に考えなさい
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 12:40:05.82:PGp2AKzL0
ttp://https://ideone.com/F3xZFe
のコードをCのコードの設定にしてやったから
まずenter()とshow_all()の結果をみなさい
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 12:53:15.25:16ZpsTnK0

ならお前がまず何か役に立つ回答をしてから言えよ。
お前だって

> *ptr_now:今エレメント
> *ptr_before:前エレメント
> *ptr_new:新エレメント

は回答出来ただろうに。(何故かには感謝されてるようだし)
半角君は少なくとも自分で説明しようとしている分、お前ら粘着単発馬鹿共より数段ましだぜ。

ダブルポインタ云々ではなく、18はまず、
1. リスト構造自体を理解出来ていない
2. 多分ポインタも怪しい
3. そもそも全くプログラムが追えてない
だから、IDEで全関数の頭にブレークポイントで気が済むまでステップ実行させるべきだろ。
printfデバッグなんて何でこいつがやる必要があるんだ?
このレベルの入門書ならIDEの使い方から教えるべきだろ。

そして教科書のコードはそれとなしに汎用性があるコードであるべきなのさ。
東工大はこれを満たしてる。この本は全然駄目だ。その違いだよ。
勿論東工大は最初からEcilpse + CDTだ。
ttp://http://www.is.titech.ac.jp/compview/clang/chap1.html


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。


ただマジな話、18はプログラミングは全く駄目なタイプだと思うぞ。
数学の素養/素質がない奴は、努力しても上達しない。
プログラミングは暗記で対応出来るものではないから。
プログラミング自体を止めた方がいいと思うよ。マジで。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 12:59:10.11:PGp2AKzL0
printfで十分わかるからな
IDEは低学歴知恵遅れに必要
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 12:59:52.28:rjQGIIPhM
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:02:56.96:PGp2AKzL0
むしろ
ID:16ZpsTnK0 ← コイツ
が一番プログラミングに向いてない

その自覚がない
しかも相当自分の頭の悪さの自覚がない
致命的
デフォルトの名無しさん (アウアウカー Sae9-KpFT) [sage] 2018/09/22(土) 13:09:23.43:ymnIe1Eqa
説明が下手なのは無能の証というね
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:10:24.37:PGp2AKzL0
そもそもデバッグライトは
プロのプログラミングの世界では重要な技術要件だからな

問題が発生したとき
速やかに問題点の発見ができるようにする助けになるのが
デバッグライト

問題が発生したとき
まずデバッグモードでコンパイルしてデバッグライトの出力して
なぜ問題が発生しているか原因をすみやかに発見する
幾重にも重なった巨大なシステムになるほどデバッグライトの出力は重要になる

役に立つわかりやすい適切なデバッグライトを書けるか書けないかで
だいたいそいつのオツムの程度が分かる
デフォルトの名無しさん (ワッチョイ c193-h/KU) [sage] 2018/09/22(土) 13:12:16.17:Yqnou5lg0
今日はいつもの「低学歴知恵遅れ」の人 ID:PGp2AKzL0 と
新たに登場した ID:16ZpsTnK0 の東工大ファンの人がいるのか。
デフォルトの名無しさん (ワッチョイ b147-yLbS) [sage] 2018/09/22(土) 13:12:58.27:UXUgdVRN0
捨てろ連呼ウゼエw
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:16:47.33:PGp2AKzL0
さらにいえば低学歴知恵遅れに作らせると
一切ログが出力されない知恵遅れなシステムになる

エラーとしか出力されない
もしくはエラーが発生してハズなのに正常終了して
停止せずに次の処理にいってしまう
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/22(土) 13:21:17.50:sYLo1So00
voidとIDE……
Java上がりか?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:24:22.34:PGp2AKzL0
オレの説明はカンペキだからな
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 13:28:52.60:16ZpsTnK0
一応東工大の全部読んだぞ。
俺は東工大の教材の方がずいぶんましだと思うが。
概ね初心者向けによく書けてる。(当たり前だが)

> int main() {
> struct schedule* list = NULL;
> list = list_add(list, 2009, 1, 1, 0, "元旦");

毎回書き戻すこのインタフェースについては若干検討の余地ありだけども、
ダブルポインタも難しいというのならこれでも致し方無しか。
ただこれだとインミュータブルの言語では複数ヶ所から使用出来なくなるから、
やはりオブジェクト指向で list->add() と書く癖を付けた方がいいし、
リストなんて使いたければ素直にC++使えってことだと思うけどね。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。


まあのコードのゴミっぷりが分からないうちは大口叩くのは止めとけ。
そしてこれを覚えておいて、数年後に見直してみろ。
俺が何言ってたか分かるから。


ファンではないぞ。偶々ググったらヒットしただけ。
ただ、概ね大学の講義資料は良く出来てるよ。
これまでも、他大学を含めて何度もURL貼ったことがある。
(良く出来ているのが検索上位に来るだけかもしれないが、
それでもそれを有り難く利用させてもらえばいい)
デフォルトの名無しさん (ブーイモ MMed-Nssn) [sage] 2018/09/22(土) 13:29:39.28:c//Edh7FM

えー、あなたより先にそれ答えたけど。
単発idはnvno業者のせいなんで文句言われても困る。

ちょっとポインタで躓いたくらいでやめたほうがいいとかどんだけハードル高いんだよ。
あなたは下っ端が向いてそうだから間違っても後輩の教育係にはならんようにな。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:30:53.14:PGp2AKzL0
まずオマエの場合、
自分がゴミでクズの低知能の低学歴知恵遅れの自覚がない
そこが問題

講義用のプリント読んでもその程度だからな
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/22(土) 13:31:56.76:a9vdXzW90
とりあえず、人に説明するのにやたらと攻撃的だったり高圧的だったりする奴は向いてないな。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:33:54.35:PGp2AKzL0
低学歴知恵遅れがなにも理解できてないのに
分かったつもりになれる

そういう意味で東工大のプリントは優秀
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:40:00.87:PGp2AKzL0
最近話題の池上と似ている
頭悪い池上のいってるどうでもいいことや池上の本を読んで
なんか分かった気になれるのととても似ている
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 13:42:35.36:16ZpsTnK0

お?お前のレスってどれ?
とりあえず本日分全部言って。(IDと同じ条件になるように)


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/22(土) 13:43:22.87:WyfQotM3a
まあこういうのは結局かけた時間だから。
同じこと繰り返しててもあかんけどね
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:47:10.22:PGp2AKzL0
まずオマエはな
本格的なプログラミングより
自分の本格的な頭の悪さを自覚したしたほうがいい
デフォルトの名無しさん (オイコラミネオ MMd6-rhI1) [] 2018/09/22(土) 13:49:03.34:QTHsDkPYM
やっぱC++は糞だな
信仰してるやつ含め
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 13:49:39.33:16ZpsTnK0

> ちょっとポインタで躓いたくらい
ではないぞこれは。
そして俺の経験上、プログラミングは

A. 勝手に上手くなる
B. 徐々に上手くなる
C. 全く上手くならない(本人が努力してても)

のタイプがいる。以前は不思議だったのだが、最近だんだんとこの理由も分かってきた。
で、悪いが、18はCタイプだ。
というかそもそも昨今の「全国民がプログラミングを」みたいなのが間違ってて、18はそれの被害者だ。

と見てるからの助言だが、君が18を正しく導けるならどうぞやってみてくれ。
それについて俺が反対する理由もないし。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 13:52:47.31:PGp2AKzL0
デバッグライトすら書けないヤツが
自分が十分なプログラミングができると思い込んでるわけ

典型的なダメな使えないヤツの典型だからな
オマエ自身が向いてないまず自覚をもつが先だ

とてつもない低学歴知恵遅れで底辺である自覚ももつべき
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 13:58:31.83:16ZpsTnK0

C++は最近は迷走中だが、少なくとも改善版Cであることは事実なんだよ。
SortedList ならクラスを使えば綺麗に実装出来る。
文法についても問題があったについて対策済みだろ。

いまいち最近のお前らが言語間で争う意味が分からない。
俺はbetterC派だから、生粋のCerからも生粋のC++erからも叩かれる存在ではあるのだが、
昔はこんな事なかったと思うんだけどね。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 14:02:20.79:PGp2AKzL0
まず頭が悪いヤツに言語の特性なんかわかるハズがない
それぞれの言語すら分かってないヤツに
その特性の差なんか分かるはずがない

↓こんなことを自信満々で書いてる低学歴知恵遅れだからな

37 名前:デフォルトの名無しさん (ワッチョイ f94f-yqSl)[sage] 投稿日:2018年09月22日(土) 01時42分06秒64 [深夜] ID:16ZpsTnK0 [2/24] (PC)

> void show_all(void)

なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
さらに酷いのは show_all 内でグローバル変数 address を掴んでいること。
普通は void show_all(tag_address* ta) だよ。
そうじゃないと複数のリストがあったときに使い物にならないだろ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 14:03:39.37:16ZpsTnK0

結局明示無しか?

まあの流れなら、
少なくとも73は「未回答、または回答不十分」だと見なしていたわけだよ。


「C言語本格入門」はゴミだから今すぐ捨てろ、マジで。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 14:09:51.43:PGp2AKzL0
たとえば夜間バッチが動いて
エラーが発生する

ID:16ZpsTnK0 ← こういうヤツに
好きに作らせるとなんでエラーが発生したわからない様な
テロコードを書く

しかも無意識、そんなコード書いてもなにが悪いかもわからない

こんなヤツにコードを書かせる場合、強力な監視が必要になる
その労力に半端ないぐらいのムダが発生する
デフォルトの名無しさん (ワッチョイ c27c-iHci) [sage] 2018/09/22(土) 14:21:45.13:bcuOiC7Q0
ポインタは入門書読んだときは簡単と思ったけど規格書読んでみたら難しいと思ったな
例えばC++でtype punningを規格に沿った形で実現できるのか
memcpy使っても規格を見ると怪しいと聞いてもうね どうすりゃいいのよ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 14:31:58.80:PGp2AKzL0
むしろポインタなんかどんなアホでもすぐに理解できる
そっから先で道を誤るヤツのほうが多い

低学歴知恵遅ればっかりのこのスレみればわかるとおり
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 14:37:01.37:PGp2AKzL0
だいたいアホはシステムというもんが分かってないからな
シンタックスをしってて、動きさえすれば
それでなんでもできるもんだと勘違いしてる低学歴知恵遅れのスクツがココだからな

低学歴知恵遅れの万能感は半端ない

低学歴知恵遅れはどんだけゴミクズでどんだけ自分が致命的に頭悪いか
その自覚がない
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 14:44:01.16:16ZpsTnK0

unionのことならC++では「絶対に書け、でないと動きを保証しない」なんだろ。
俺はそれは糞で、C流の「つべこべ言わず書いたように動かせ」の方がいいと思ってる。

C++は「書いたように動く」事よりも、「自動的に速くなる」方を選んでる。
それでいい分野も多いが、不味い分野もある。
だから結果的に棲み分けされてしまう。

以前C++スレで出たはずだが、
俺はあの仕様の問題は、関数ごとに最適化条件を変えられないことにあると思うよ。
unionなんて触るのはごく一部の関数だし、そこだけ最適化を解ければ済むこと。
C++は「ソースはこう書くべき」なんてやってるからそういうのを認めない。
これが良くない。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 14:56:37.58:PGp2AKzL0
普通にunionなんか使いまくられてる

    if (::setsockopt(m_i_server_socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&i_on, sizeof(int)) < 0) {
      ::perror("setsockopt(SO_REUSEADDR) failed");
      return -1;
    }

    struct sockaddr_in t_sockaddr_in;
    ::memset(&t_sockaddr_in, 0, sizeof(struct sockaddr_in));
    t_sockaddr_in.sin_family = AF_INET;
    t_sockaddr_in.sin_port = ::htons(u_port_);
    t_sockaddr_in.sin_addr.s_addr = ::htonl(INADDR_ANY);

    if (::bind(m_i_server_socket, (struct sockaddr *)&t_sockaddr_in, sizeof(struct sockaddr_in)) < 0) {
      ::perror("bind() failed");
      finalize();
      return -1;
    }


なんで低学歴知恵遅れは自分の極端に狭い了見で
すぐにしったかすんの?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 15:00:47.10:PGp2AKzL0
低学歴知恵遅れは低学歴知恵遅れの自覚は一切なく
自信満々でテキトーなことをいうからな
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 15:08:28.87:7nPJqZuh0
いいぞ
もっとやれ
デフォルトの名無しさん (ワッチョイ c27c-iHci) [sage] 2018/09/22(土) 15:19:40.54:bcuOiC7Q0

C++はunionでもだめらしい なので memcpy でもそれも怪しいと
どこだっけ C++ カンファレンスなんかで出ていた話題
テストをたくさん作って開き直るしかない面がある
C99とgcc拡張ではokなんだけど
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 15:39:17.37:16ZpsTnK0

見ての通り、俺は規格に詳しいわけではないので、
申し訳ないがそれ以上は分からん。
ただ、C++もバリバリの実用言語だから、
何らかの手段は提供しているとは思うけど。
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 15:42:51.93:PGp2AKzL0
要するになにも知らないわけか
で、オマエはなにをしっててこのスレに書きこんでるわけ?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 15:44:50.26:PGp2AKzL0
つまり低学歴知恵遅れが
とりあえず行き当たりばったりのコードをとりあえず書いて
IDEでトレースデバッグならできますと

そう自己紹介してたワケか
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 15:52:07.27:PGp2AKzL0
まさに
結果としてとりあえず動きさえすればいいという低学歴知恵遅れの思考回路といっていい

まさに地雷
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 16:15:07.77:rjQGIIPhM
お、決着付いたかw
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 16:22:40.01:PGp2AKzL0
決着なんかついてない

低学歴知恵遅れのレスなんか情報価値ゼロだからな
ココまでのレスは低学歴知恵遅れの落書き
ただの低学歴知恵遅れのノイズ

オレのエレガントな回答()に質問したヤツが
このあとどう考えることができるかがココでは重要なワケだからな
デフォルトの名無しさん (ワッチョイ cde3-tHrl) [sage] 2018/09/22(土) 16:48:54.50:OhNgC4130
低学歴知恵遅れ君が見事にスルーされててワロタ
お前ら流石だなw
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 16:53:47.18:PGp2AKzL0
スルーじゃない

オレのレスは一切のスキがないほどカンペキなレスだからな
オレのレスにレスすらできない
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 18:32:31.91:7nPJqZuh0
よくやった
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/22(土) 20:07:04.73:sYLo1So00
ミスを取り繕おうとして必死に足掻く人間の尊い姿が見れました
今日はこれでおなかいっぱいです
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 20:24:37.68:16ZpsTnK0

こんな感じ?
ttp://https://stackoverflow.com/questions/25664848/unions-and-type-punning
ttp://https://adriann.github.io/undefined_behavior.html
Cならunionでよし、C++ならさらに one active を守れ、というところか。
デフォルトの名無しさん (アウアウカー Sae9-kke4) [sage] 2018/09/22(土) 20:28:37.33:IQP82yEia
ここCだからC++の話は他所でやれ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 20:44:12.64:16ZpsTnK0
strict aliasing はCもだけどな
ttp://http://d.hatena.ne.jp/yohhoy/20120220/p1
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/22(土) 21:03:12.63:1VdbYLFX0

> とにかく、 void がクソだというのは取り下げる。

いや、voidはクソだぜ
K&R Cでは「引数が0個でなければならない」とか
「返却値は使用禁止」といった概念がなかったので
(void) のようなシュールな構文を後付けせざるを得なかったが
() で引数0個にならないというクソルールを上塗りする形で登場したものだ
クソルールの延長はずっとクソだ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:04:50.64:PGp2AKzL0
ぜんぜん違う
プロトタイプ宣言を厳密にできるようにしてるだけだからな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:08:08.86:PGp2AKzL0
昔のCはプロトタイプ宣言すらなかった
引数の数や順序の誤りがかなりのバグの温床になってたからな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:13:19.69:PGp2AKzL0
やっぱりな低学歴知恵遅れは
なにも知らないくせにテキトーなことばっかりいうのがよくわかる

低学歴知恵遅れが二匹以上あつまると
ものすごい頭悪いレスに対してでものすごい頭悪いレスで
スレが成立することになる
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/22(土) 21:31:49.36:16ZpsTnK0

それについては、ここにいる大半の初心者も含め、
・CコードをC++コンパイラでコンパイルする
で解決出来るだろ。
当たり前だが問題になる仕様は修正されているし、
C++と非互換部分に当たったらその時に考えろ、でいい。

勿論C自体の仕様が変更される方がいいが、それをここで言っても意味無いし。
C++98辺りまでは(C++03もか?)完全上位互換だったはずだし。
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/22(土) 21:35:32.58:1VdbYLFX0

おーいバカ、息してるか?
135に即レスされてんな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:36:45.21:PGp2AKzL0
オマエはその初心者にすら到達してない
その自覚がない

基本的なことすら分かってないくせに
しょうもないエイリアシングの受け売り日記読んで
それでなにか分かった気でいるワケだからな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:37:45.25:PGp2AKzL0
いやオレが書いてることはなにも間違ってない
なにも書かなかったら int 返す関数にされてしまうからな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:40:18.41:PGp2AKzL0
ホントに低学歴知恵遅れは
なにも分かってないらしいわ
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:41:46.14:PGp2AKzL0
低学歴知恵遅れが
ムリして頭いいふりしようとしても
頭悪いのなんかすぐにバレるからな

残念なことに

本人は気付いてないかもしれないが
いちいち頭悪いですと自己紹介するからな

残念なことに
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:44:28.90:PGp2AKzL0
まともな教育を受けているば
低学歴知恵遅れセンサーの感度はよくなる

レスみれば
コイツ低学歴知恵遅れとすぐに分かるワケ

コレはマジな話だからな

低学歴知恵遅れにはそういうセンサーは内臓されてない
そいつ自体が低学歴知恵遅れだからな
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 21:55:46.74:7nPJqZuh0
なんで半角で書くの?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 21:57:20.87:PGp2AKzL0
なんで全角で書くの?
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 21:57:59.62:7nPJqZuh0
変換候補のトップに出てくるから
デフォルトの名無しさん (ワッチョイ 6e5b-Nssn) [sage] 2018/09/22(土) 22:00:48.10:wyOkhzEz0

> C++98辺りまでは(C++03もか?)完全上位互換だったはずだし。

おい大丈夫か?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:01:07.16:PGp2AKzL0
半角のほうが横文字が見た目冗長じゃなく読みやすいから
行あたりの情報量が多く視認性もよい
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/22(土) 22:05:35.54:1VdbYLFX0

ホントに青二才は
なにも分かってないらしいわ

青二才が
ムリしてベテランのふりしようとしても
ニワカなんかすぐにバレるからな

残念なことに

本人は気付いてないかもしれないが
いちいち頭悪いですと自己紹介するからな

残念なことに
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:06:57.06:PGp2AKzL0
相当悔しいらしい
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:08:38.78:PGp2AKzL0
しかしな
キミラが相当頭悪いというのは
間違いなく事実だからな

残念なことに

その自覚がないのが相当致命的であるだけであってな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:11:26.83:PGp2AKzL0
ID:1VdbYLFX0 ← コイツは低学歴低知能底辺の高齢ITドカタ

オレぐらいのレベルになると
レスでだいたい社会的特徴まで
概ね推認できるようになる
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/22(土) 22:12:31.90:AEsgMTAW0

始まった頃のパソコン通信だと、
アルファベットとカタカナしか使えなかったっけ
一度これをやってみてくれないか?
本当に行当たりの情報量が多く、視認性が良いか確かめてみて
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:14:43.13:PGp2AKzL0
漢字がないと読みづらいにきまってるだろ
頭悪いの?
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/22(土) 22:16:23.82:PGp2AKzL0
KANJI ga naito yomizurai ni kimatterudaro
ATAMA WARUI NO?
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/22(土) 22:24:34.83:rjQGIIPhM
ほんとだ!全部半角で読み易い!!
さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd62-gRel) [sage] 2018/09/22(土) 22:27:04.62:UJtJ/FuZd
全部空白にすると読むストレスが大幅に軽減されるよ。
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/22(土) 22:56:20.90:7nPJqZuh0

それを根拠に一人だけしかやってなくて目立つ行動を続けてきたというワケか
なるほど。
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/22(土) 23:02:48.16:1VdbYLFX0
効いてる効いてるw
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/22(土) 23:48:59.10:sYLo1So00

>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?

これが今年の大賞候補
デフォルトの名無しさん (ワッチョイ 01f2-coYL) [sage] 2018/09/23(日) 00:02:26.39:ZzaracLF0
 ヘ_ヘ
ミ・・ ミ 
(   )〜 
デフォルトの名無しさん (アウアウカー Sae9-kke4) [sage] 2018/09/23(日) 00:05:07.81:GlsCxAATa
void 引数を初めて見たってのがなかなか
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/23(日) 01:02:52.16:A0stA7Ax0

お前さんのレスは毎度毎度同じような汚い言葉繰り返して冗長なんだから、まずそれを治せよ。
行当たりの情報量、かなり低くなってるぞw
デフォルトの名無しさん (ワッチョイ 469f-3QZN) [] 2018/09/23(日) 01:34:39.73:s92HkKLC0
すごい。もうこんなに書き込みが増えているなんて。さすが
まさかこんなにすごい釣り名人がこのスレに現れるとは思わなかった。
デフォルトの名無しさん (ワッチョイ 469f-3QZN) [] 2018/09/23(日) 02:16:32.82:s92HkKLC0

ああ。名言だね。
デフォルトの名無しさん (ワッチョイ 469f-3QZN) [] 2018/09/23(日) 02:18:19.58:s92HkKLC0

お久しぶりです。
デフォルトの名無しさん (ワッチョイ 42eb-Lcjh) [sage] 2018/09/23(日) 02:46:55.57:NZFTE96P0
まあ、質問者は運が悪かったかなーとは思う。
「俺の言ってることが正義」「それを理解できないのはお前が悪い」
みたいな教え方は、初心者にとっては助けにならないんだよね。教師としては(ry

ポインタがあまり理解できてない、という時点で、初心者スレ(C/C++室)に
誘導してあげた方が、初心者と同じ目線でのレスがもらえたかもだ。
デフォルトの名無しさん (ワッチョイ c964-vX2D) [] 2018/09/23(日) 03:20:49.83:D4/zD5nR0

なるほどね……。
いやGNU LibCは過去互換性やらいろいろで
ややこしそうな印象がある一方で
Musl LibCはC99対応を謳ってる新規プロジェクトだから
取り組みやすいかなと思ったんだけど

やっぱり知名度が低いライブラリは避けるべきよね
デフォルトの名無しさん (ワッチョイ 625d-Z6AH) [sage] 2018/09/23(日) 07:28:43.63:F+fmWasg0
ワンツーフィニッシュ!
ttp://http://hissi.org/read.php/tech/20180922/
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/23(日) 07:32:52.82:A6XCmyXs0

デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 10:29:46.37:2VtMIRxv0

ゆとり死ね。だからお前らは駄目なんだ。

まあ俺はゆとりとついでにさとりも殺処分するしかないと再認識したがな。
ここはどんなクズでも手取り足取り教えてもらえる学校のような場所ではない。
読者参加型ですらなく、全員参加型の場所なのだから、改善はお前自身で行わなければならない。
(これは社会も同じ。理解出来ないのはお前が学生またはその程度だからだ)

不味いパン屋に文句を言ったところでパンが美味くなることはない。
美味いパン屋を自分で建てるか、誘致するか、自分で探して買いに行くなりしなければならない。
その結果、不味いパン屋は倒産し、美味いパン屋だけが繁盛して残る。
結果、社会全体で見ればよりおいしいパンを手に入れられるようになる。改善するわけだ。
ここも同じだ。

他人のレスに文句を言っても何も変わらない。
良いレスを自分でするなり、適切なスレが他にあるのなら誘導するなり、
改善する活動は自分自身で行わなければならない。
お前らはこれを全くせず、文句しか言えない。だからゆとりが集まっても何も改善しない。
これは、長期的に日本を悪くして行っている。

教え方を知っているつもりなら、何故お前が教えてやらない?
他の良いスレを知っているのなら、何故そこに誘導してやらない?
この点において、何度も言っているが、半角君の方がまだましだよ。
彼は少なくとも自分で改善しようと試みてる。

不味いパン屋を出店することが法的に規制されていないのと同様、
ここでは下手くそなレスを連発することも規制対象にならない。
なら、自分がより良いレスが出来ると思うのなら、何故やらない?
お前らは根本的に考え方がおかしい。
だから文句を言われるのだが、それが何故かも理解出来てないだろ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 10:30:10.73:2VtMIRxv0
話は簡単だ。相手より良いレスで相手のレスを「上書き」すれば良いだけだ。
おいしいパン屋が結果的に不味いパン屋を蹂躙するのと同様、
お前のレスが下手くそなレスを蹂躙すればいいんだよ。
もっとも、どのレスに価値があるかは読者が判断することであって、
お前らみたいにわーわー騒いで勝ち、という幼稚園児レベルの話でもないがな。

質問者、或いは同様の事で悩んでいる奴らは、全部のレスを読むだろう。
その結果、「このレスのおかげで理解出来た」というのは自然に発生していく。
それが勝ち負けに対する一票であり、その投票で勝ち負けは決まる。

この点において、俺がお前らに「負ける」事は絶対にあり得ない。
お前らは何ら「役に立つ『可能性』のある」レスをしていないからだ。
他人に文句しか言っていない。
自分の候補を持ってないから、お前らが勝つことは原理的にない。

ここで、『可能性』に言及したのは、これこそが改善の原動力だからだ。
お前らも、自分のレスの方がいい『可能性』があると信じるなら、どんどんレスをすれば良いんだよ。

この点において、半角君自身は彼のレスこそが至高であり、俺のレスなんてゴミだと信じているわけだから、
当然俺のレスを貶す。
まあ必要以上に粘着されているが、彼が俺を貶すのは、この点において理に適っている。
それが行儀がいいかどうかは、読者の判断に委ねればいい話だ。
もし彼のレスで「分かった!」となる奴がいたら、彼の勝ちでいいわけだし。

そしてこの点において、お前らには本来は文句を言う権利もない。
お前らは俺のレスを上書きする為の「お前ら自身のレス」がないのだから。
俺は俺のレスがある。半角君は半角君のレスがある。これでレースは成立する。
お前らにはレースに出走するレスすら存在しない。当然レースには参加出来ない。
お前らはこのことも理解出来ない馬鹿なんだよ。
だからゆとりは死ねといわれる。これも妥当な話だ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 10:31:15.69:2VtMIRxv0
俺はに必要なのはIDEであって、話はそれからでいいと思うぞ。
そして今の判断では、18はプログラミング向きではないから、止めた方がいいと思うし、
それ以前に何の為にプログラミングしてるか謎なのだが。
学校の勉強として出てくるプログラミングを先に予習するつもりなら、止めとけ。
数学と物理を勉強しておいた方が、結果的にプログラミングの学習は早い。
だから学校の勉強を頑張っておいた方がいい。
デフォルトの名無しさん (ワッチョイ 62f3-coYL) [sage] 2018/09/23(日) 11:41:27.01:A6XCmyXs0
ネオvoidが今日も暴れる
駅前で不特定多数を叱り飛ばしている危ないオヤジさながら
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/23(日) 12:19:44.35:daMeAE670
voidおじさん誕生の瞬間に居合わせることが出来てわたしはとても幸せです
デフォルトの名無しさん (ワッチョイ b163-yLbS) [sage] 2018/09/23(日) 12:25:48.45:HrTZFmBf0

ここは質問に答えるスレだ
おまえは半角君に感化されてようやく質問に答えた
最初のおまえの行為を正当化する道理はない
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/23(日) 12:28:32.40:A0stA7Ax0
は悪くないのに、とばっちりを受けたようなもんだね。
初心者なら別に珍しくもないレベルの疑問や理解不足なのに、たまたま答えた奴が自分のミスを指摘されたことに逆上して他のところに八つ当たりをしているだけのように見える。
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/23(日) 13:05:05.36:0tCq7KCLa

あの人は基本的には短文だけどね
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 13:07:20.90:2VtMIRxv0

ゆとりはマジで死ね

だからそれはお前自身がまず役に立つレスをしてから言え。
そしてそれが本当に役に立つのなら、誰がどういうレスをしようが話はそこで終わる。
質問者はそのレスだけでおなか一杯になるし、それで十分だからだ。
他人のレスにどうこう言う話ではない。

そもそもここで他人に期待するのが間違っている。
各自は勝手にレスするだけ。
回答する自由もあるし、無視する自由もある。勝手なことを述べる自由もある。
お前は根本的に勘違いしている。自分でやらないといけないんだよ。

そもそもお前は何故回答しなかったんだ?
それを棚に上げて、お前は何を言ってるんだ?
お前が正しく回答すれば、それで終わった話ではないのか?

ゆとりがいくらいても何も改善しない。だからゆとりは殺されるべきなんだよ。
正しく理解して死ね。

お前らより、半角君のほうが数段ましだ。
彼が100人いたら、100通りの回答は出てくるだろうし、どれかは当たるだろう。
お前らが100人いても、文句ばかり言って、誰も何も回答しない。何も改善されない。

そもそも、が回答になっていると思う馬鹿共は、のソース読んでないだろ。
それでどうしてそんなに強気で批判出来るのか。頭おかしいとしか思えないぞ。
72の「直接的回答」では18の手助けにはならない。
少なくとも、それで解決する奴なら、そんな引っかかり方はしない。

俺の回答は、「色々間違ってるから納得いくまでIDEでステップ実行しろ」だ。
これ以上の回答が出来るつもりなら、やれば良いだけだ。何故それをしない?
そして、半角君はそれをやってるだけだ。お前らより数段ましだ。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [] 2018/09/23(日) 13:23:18.60:s92HkKLC0

そうだね。「レスってなんですか?」みたいな。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [] 2018/09/23(日) 13:34:52.85:s92HkKLC0
ゆとりと言えば現在52歳以下の大半はゆとりなわけで、ほとんどゆとりがゆとりを叩いているだけだ。目糞鼻糞を笑うみたいな感じ。
50代も20代の頃には「新人類」とか呼ばれていた。おそらくそう呼んでいた側も若い頃は色々言われていたんだろう。
いつの時代も歳よりは若い者に難癖を付けて嫌がるものだ。自分のお株がどんどん奪われて行ってしまうからな。
若いやつを嫌がるようになったらもうほとんど終わったと思った方が良い。

ttp://https://ja.wikipedia.org/wiki/%E3%82%86%E3%81%A8%E3%82%8A%E4%B8%96%E4%BB%A3

ゆとり世代

 ゆとり世代(ゆとりせだい)とは、ゆとり教育(ゆとりきょういく)を受けた世代のこと。

定義・範囲

ゆとり世代については明確な定義、範囲はなく諸説ある。

 小中学校において2002年度施行(高等学校は2003年度)の学習指導要領による教育を受けた世代(1987年4月2日 - 2004年4月1日生まれ)。

 小中学校において1980年度以降(高等学校は1982年度以降)の学習指導要領による教育を受けた世代。1966年度生まれ以降。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [sage] 2018/09/23(日) 13:36:44.51:s92HkKLC0
ああ、そうだ。14歳以下はゆとりではないな。失礼。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/23(日) 14:00:28.93:A9/M/+R7M
昨日のやつまだ暴れてんのか
3行でたのむわ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 15:20:08.05:2VtMIRxv0

> 現在52歳以下の大半はゆとり
まずお前は算数からやり直した方がいい。

> いつの時代も歳よりは若い者に難癖を付けて嫌がるものだ。自分のお株がどんどん奪われて行ってしまうからな。
これは違う。
というか、ゆとりはこの方法でもっとゆとり批判の陳腐化を仕掛けるのが常だが、これは間違いだ。

いつの時代も、最近の「天気」「若者」「言葉」はおかしい、と言われてきた。これは事実だ。
ただ、ゆとりの場合、逆に
> 自分のお株がどんどん奪われて行ってしまうからな。
これがないから批判されてる。

教育システムは単調増加で整備されていく。
先生も教材もこなれてくるからだ。
先生は先生なりに努力はしており、上手い教え方が見つかれば共有されていく。
(それの最たる物が予備校だったわけだが)
勿論クズ教師もいるが、それ以外が大半だから、全体的には改善していく。

プログラミングにおいては、無料IDEが何種類も普及し、言語も選べるようになった。
PC(実行環境)が家にあるのは当たり前になった。
家で実行する術もなく、無料IDEもなく、C言語しかなかった時代はほんの15年前だ。
それからすると雲泥の違いだ。

だから、『同じ努力をしたとき』同じ年齢で比較すれば、常に実力は 新世代 > 旧世代 の図式が成り立つ。
よって、いつの時代も、実力は 旧世代の今 >>> 新世代の今 > 旧世代(新世代と同年齢時) だった。
これが、
> 自分のお株がどんどん奪われて行ってしまうからな。
に繋がる。繰り返すが、これは『同じ努力をしたとき』の話でしかない。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 15:20:35.45:2VtMIRxv0
問題は、ゆとりは努力をしてきてないことだ。
だから、これが成立しない。ゆとりが叩かれているのは、ひとえに、旧世代から見て、
「昔の俺より明らかに酷くね?」と思えるからだ。
逆に言えば、それ以前の若者批判は、
「最近の若者は酷い」「じゃあお前の若い頃はどうだったんだ?」「…(いや確かに酷かったわ)」で済んでた。
それがゆとりは成立しないから叩かれてる。つまり、
「ゆとりは酷い」「じゃあお前はどうだったんだ?」「さすがにこんなんじゃなかったよ!」なわけだ。
(勿論、飲みニュケーションなんて意味無いし糞ウゼエとは俺も思ってたから、
ゆとり(というより新世代)の価値観に共感出来る面はあるにしても)

プログラミングでも同じだ。
環境は圧倒的に新世代の方が上だから、旧世代の『当時の』実力に追いつくのは圧倒的に楽だ。
それは旧世代の成果だが、新世代なのだから有り難くそれを享受すればいい。
東工大含め、各学校がシラバスを上げているのもそういう流れだ。
そしてその後の新々世代は、さらにそれを享受し、新世代をも凌駕する速度で学習すればいい。
そうやって世の中は回っている。

だから新世代は旧世代を凌駕してくれないと困るんだよ。
ゆとりはこれがないから叩かれてる。
お前らが思っているのと逆なんだ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 15:21:23.36:2VtMIRxv0
2chについては、システムを長いこと変更していない。
結果、このシステムではこうしかならない、という点に収束している。
死ね、ウンコ、おっぱい、良くも悪くもこのスレ以外も同じだろ。

現状、文句を言っている奴は、全く改善に繋がるレスが出来ていない。
他人に文句だけ言って、自分では何もしない、典型的クレクレ君だ。
そしてお前らはクレクレ君をちゃんと飼え、回答だけしろという。
そういうスレは2chにはないだろ。
理由は簡単、そんなスレは面白くもなく、当然のように潰れるからだ。
ここら辺を理解も出来ないからゆとりは馬鹿にされる。
お前らが望む物は、今のお前らのやり方「文句を言うだけ」では絶対に手に入らない。
お前らが直接参加して、お前らが思う『正しい回答』をするしかないんだよ。

だから、「C言語ゆとり専用スレ」が繁盛すると思うのなら、やってみればいい。
俺はそっちには行かない。これは約束する。
そしてそのスレが繁盛し、このスレが過疎って落ちるのなら、君らの勝ちでいい。

そうやって、おいしいパン屋が不味いパン屋を駆逐するのと同様、
良いスレが悪いスレを駆逐することにより、全体的に板が次第に改善されていくものなんだよ。
これは2chにこだわる必要もなく、
stackoverflow/teratail/知恵袋/はてな等、好きなところを自分自身で盛り上げればいい。
そうやって、2ch自身が過疎って死ぬのなら、2chは役割を終えた、となる。
この、改善に向けての一歩は自分自身のレスで行うしかないし、それ自体が一票になる。
そしてその投票結果が繁盛/過疎、ということになる。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 15:22:30.79:2VtMIRxv0
だから何度も言っているが、他人のレスにけちを付けるのではなく、
「俺ならこうだ!」みたいなレスをするべきだし、
それをしてないうちは、他人のレスにけちを付ける筋もないんだよ。
そしてこれまた何度も言っているが、半角君はそれをやってるし、
彼にとっては彼の回答こそが大正義なのだから、俺のレスにけちを付けるのも筋は通っている。
だから、お前らも、まずお前らの大正義回答を見せてから、俺のレスにけちを付けるべきなんだよ。

ゆとり批判にフォーカスして論理をすり替えるのもお前らの常套手段だが、
お前らがゆとりであることが問題なのではなく、こういった筋を理解していないから批判されてて、
理解出来ないのはゆとりだから、とされてるわけだ。
結果、ゆとりは死ね、で大体あってるからゆとりが叩かれてる。
ゆとりの行動が批判されているのであって、それはお前らが変われば済む話なんだよ。

ここでの話なら、何度も言っているが、お前ら自身が大正義な回答をして見せろ。
そしてそれが質問者にとって本当に役立つのなら、そこで話は終わる。
俺がどんな糞レスをしようと、質問者は俺のレスなんて無視して終わりだ。
お前らはそれをせずに、文句だけしか言わないから批判されてる。
それをちゃんと理解して、社会参加しろ。(ここでなら回答しろ、ということ)
デフォルトの名無しさん (ワッチョイ 469f-coYL) [] 2018/09/23(日) 15:48:30.78:s92HkKLC0
必死だな。長すぎて読む気が起きん。パッと見C言語とも関係なくスレチなようだし。
デフォルトの名無しさん (ワッチョイ 6e5b-onpN) [] 2018/09/23(日) 15:57:32.02:MC3A3QT40

ttp://https://imgur.com/p8rAmDB
ttp://https://imgur.com/a/f14jCWT

匿名掲示板なんかで俺はいったい何をやってるんだ。。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/23(日) 16:06:19.50:A9/M/+R7M

おしまい
って言ってるけどポインタ操作残ってると思うんですが
デフォルトの名無しさん (ワッチョイ 6e5b-onpN) [] 2018/09/23(日) 16:18:10.25:MC3A3QT40

本質は捉えてると思うけどいろいろ省略はしてるよ。
デフォルトの名無しさん (フリッテル MMd6-l/4I) [sage] 2018/09/23(日) 16:20:33.89:wZwojnIWM
そこまで説明必要か?
十分だと思うが
デフォルトの名無しさん (アウアウオー Sa0a-KHI6) [sage] 2018/09/23(日) 16:24:02.25:M01VWGWsa

すごい
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 16:35:24.60:2VtMIRxv0

おーご苦労様。(俺に言われたくはないだろうけどさ)

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

君が認めるかどうかはさておき、
良くも悪くも今君が作った図はインターネット上を彷徨うことになる。
そしてこれは次世代への蓄積となり、次世代はもっと効率よく学習出来るようになる。
君は未来に対して貢献したのだから、褒められるべきだ。
こういう、各自の努力の蓄積によって今の社会は成り立ってる。
学生の本分は学業だと言うのなら、社会人の本分は社会だ。
社会人はこれを認識し、社会に対して責任を持たなければならない。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 16:47:50.83:2VtMIRxv0

そして詳細確認したが、「今回向け」に書いている点が惜しいな。

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

可能であれば君自身で修正し、ブログでも立ち上げてそこに貼り付けるか、(quitaでもいいか?)
ブログやってるが図がない奴に勝手に送りつける等、残す努力をするべきだな。
まあそちらの自由だが。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/23(日) 17:02:44.17:A9/M/+R7M

やりっぱなし感があるというか
手順の提示としては定常状態まで戻っておしまいの方が好ましいのでは
まして想定対象者がみないな感じなら
デフォルトの名無しさん (ワッチョイ 6e5b-onpN) [] 2018/09/23(日) 17:17:52.45:MC3A3QT40
あーうざい
は今後もプログラミングを続けるべき18のためのもの。
長文くんの回答はハードモードで入門者の役に立たない。
この段階でダブルポインタとか頭おかしい。


うーん、ごめん無理。もう疲れた。
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/23(日) 17:31:07.99:YEpQkxBa0

無能ですね
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 19:25:09.48:2VtMIRxv0

> この段階でダブルポインタとか頭おかしい。
そもそも二重ポインタが難しいってのがもう無理なんだよ。
ただのポインタと二重ポインタの難易度で大差はない。
それだとジャグ配列も理解出来ないだろ。

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

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

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

そしてその程度で疲れるものだと理解出来たのなら、
俺やお前の上司や先輩がどれだけお前らゆとりの為にエネルギーを費やしてきたかを理解し、
感謝しつつ、お前も後輩の為にエネルギーを費やせ。
(上司や先輩に返す必要はない)
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/23(日) 19:32:11.78:eq3kKmf90
この必死なレスのモチベーションはなに
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/23(日) 19:51:24.73:A0stA7Ax0

自分の無知を指摘され、いったん素直に指摘を認めことができたけど後から後から突っ込まれ、怒りの矛先を他人に向けて自分を納得させようとしているのだと思われる。
カッコ悪い姿をさらし続けていることに自覚が無いらしい。
デフォルトの名無しさん (ワッチョイ 2260-9U/T) [sage] 2018/09/23(日) 19:59:31.31:pZmr8c6F0

>ただのポインタと二重ポインタの難易度で大差はない。
それは、あなたの理解の仕方が、二重ポインタの難易度の差を感じない、というだけであって、
他の人にとっては、ただのポインタと二重ポインタとで、難易度に差が出る可能性はあります、というか、それが普通だと思います
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 20:03:40.44:2VtMIRxv0

違うぞ。お前はそういうことにしたいようだが。


まじめに聞きたいのなら答えてやるが、その前にお前が答えるに値することを示せ。
具体的には、を見習って、お前なりのベストアンサーを出して見せろ。
そうでなければお前は文句しか言わない典型的クズゆとりでしかない。
それをちゃんと自覚しろ。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 20:08:41.92:2VtMIRxv0

何度も言っているが、俺のレスが難しすぎるというのなら、
お前がより簡単なレスをすれば良いだけだ。お前は何故それをしない?
を見習え。

だからお前らゆとりは死ねって言われるんだよ。
デフォルトの名無しさん (フリッテル MMd6-l/4I) [sage] 2018/09/23(日) 20:11:03.68:s0cMomwdM
論点おかしくないか?
スレの趣旨を考えろよ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/23(日) 20:19:56.90:2VtMIRxv0

それは俺に言ってるのか?

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

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

勝手にやれよ。俺は参加しないが。
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/23(日) 20:28:20.20:eq3kKmf90

悔しいんですね。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [] 2018/09/23(日) 21:59:52.18:s92HkKLC0

やはり何かのスイッチが入っちゃったんだろうなあ・・・
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/23(日) 22:05:27.70:A9/M/+R7M
>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?

プークスクス
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/23(日) 23:41:36.70:YEpQkxBa0

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

しかも質問したヤツはこのスレを見てるとは到底考えられない
不毛な低学歴知恵遅れたちの争いだけがひたすら続く
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/23(日) 23:53:23.11:YEpQkxBa0
> なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
> こういう質問と一切関係ない話題にだけは

もうやめて、お腹痛い
デフォルトの名無しさん (アウアウウー Sa25-dz4b) [] 2018/09/23(日) 23:55:00.19:x91orYN2a

と言うか、レス先が分からなかった通りすがりだが、LLみたいなどんな型にもなれるって意味でvoid使えるは使える。
Java のキャリー地獄みたいになるから推奨はされてないが。
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/24(月) 00:17:52.05:Fuo9Kdvg0

>なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
Javaスレで相手にされなくなってたアイツじゃね
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/24(月) 00:21:58.21:/Z9skFPV0

それは void* で、引用元は
状況知りたければ18から全部読め。(ただし中身は無い)

> Java のキャリー地獄
これは何?JavaならObjectで多態では?
なお回答先はJavaスレ(以下)でも構わない。俺がそっちに行く。
ttps://mevius.5ch.net/test/read.cgi/tech/1518252580/
デフォルトの名無しさん (アウアウウー Sa25-dz4b) [] 2018/09/24(月) 00:27:00.84:rSek34EXa
まだレスが少ないならともかく、全部は読まんw
デフォルトの名無しさん (アウアウウー Sa25-dz4b) [] 2018/09/24(月) 00:28:36.24:rSek34EXa
流石に全部は読めんw
ただ、元を読む限りただの引数なし関数やね。
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/24(月) 00:33:34.74:/Z9skFPV0

文法の不具合を解消する為の方策だ。
詳しくは内URL参照。
デフォルトの名無しさん (アウアウウー Sa25-dz4b) [] 2018/09/24(月) 00:37:29.32:rSek34EXa
くう。。。
今からだとあぼーん多過ぎていまいち。。。

新旧の文法上だと言うのは何となくわかった。
まさかautoでは無かろうが。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [sage] 2018/09/24(月) 10:09:26.60:twjLvrgB0
auto というと、C++では型推論してくれるんだっけ?
C言語だとただの自動変数を表すキーワードだからほとんど誰も使ってないと思う。
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/24(月) 11:23:55.24:GIs1tf8Y0
型指定子がなかったBの名残りってだけで
Cでは死産と言っていい状況だね
デフォルトの名無しさん (ブーイモ MM62-5hTU) [sage] 2018/09/24(月) 17:33:54.42:eFHr5qJjM
同じものがある順列を列挙するCのコードってどこかにないかな?
PEPPERとかMISSISSIPPIとかを並べる順列を列挙したい。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/24(月) 18:04:59.62:JEmRy2N3M
ただの木構造でわ?
デフォルトの名無しさん (ブーイモ MM62-5hTU) [sage] 2018/09/24(月) 22:36:13.96:eFHr5qJjM

自己レス
英語で検索したらみつかりました。

ttp://https://www.geeksforgeeks.org/print-all-permutations-of-a-string-with-duplicates-allowed-in-input-string/
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/24(月) 23:35:26.40:/Z9skFPV0

普通はcarとcdrで再帰降下して、重複を取り除く為にアホみたいにN^2/2回比較して終わり。
この単純実装で十分だと思うけどね。メモリ食うけど。
そのサイトの実装は、速そうには見えないけど、メモリは食わないね。
デフォルトの名無しさん (ブーイモ MMed-5hTU) [sage] 2018/09/25(火) 11:39:13.66:sI9HCV5SM

再帰使ったコードどこかに落ちてない?
自分で書く能力ないので既成品で速度比較してみたい。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/25(火) 13:48:31.42:4xZhtJ+zM
自分で書いた方はえーわ
そして書けないってまずいわ
さらに自分で考えないってもっとまずいわ
デフォルトの名無しさん (ワッチョイ f94f-yqSl) [sage] 2018/09/25(火) 19:20:45.10:A0N9+kL10

Cでその態度はグーで殴られるだろう。

なお225、再帰時に毎回sortして重複枝を刈れば、列挙後の比較は不要となりメモリは食わない。
ほぼ224と同じになるが、これが最速でもっとも簡素な気がする。
224は単純に全降下ではなくswapして降下先を選んでいるが、これの利点はよく分からん。
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/25(火) 22:34:27.02:4xZhtJ+zM

carとcdrってCでも使う言葉なの?
最近scheme初めて知ったんだけど
デフォルトの名無しさん (ワッチョイ 2260-9U/T) [sage] 2018/09/25(火) 22:37:06.69:CZcrESgD0

>carとcdrってCでも使う言葉なの?
あんまり聞かない…
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 22:37:56.77:Ig86RmNy0
OSの体系的な質問で申し訳ないんですけど
VisualStudioで作ったC言語の計算アプリがあるんですけど
これはMacでも動くんでしょうか?
それともMacにいったんVisualStudioをインストールしないと駄目なんでしょうか?
聞くに、C言語は低級言語なので動かないOSはない、C言語自体が完全ネイティブ環境
だとも聞いたのですがどうでしょう?
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/25(火) 22:42:03.59:1135EyDF0
コマンドラインで起動するコンソールアプリで
C言語の標準的関数しか使っていないなら
ほぼそのまま動かせると思いますが、
Windows固有のAPI使っている場合は
手直ししないと無理かと思います
デフォルトの名無しさん (ワッチョイ 2260-9U/T) [sage] 2018/09/25(火) 22:42:10.10:CZcrESgD0

main() を定義しているファイルをここ
ttp://https://www.ideone.com
に晒してくだされば、判断いたしましょう
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/25(火) 22:44:39.75:fKl9B6Sya
VS for Macとかコードの互換性あるんでねえの?
バイナリは別としてさ。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 22:50:44.42:Ig86RmNy0

うん???www
WindowsAPIってのはC言語で実装されてるから問題ないのでは?
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/25(火) 22:54:26.26:1135EyDF0
WindowsAPI毎Macに移植するのであれば、動くかも知れませんね
デフォルトの名無しさん (ワッチョイ 2260-9U/T) [sage] 2018/09/25(火) 23:06:10.30:CZcrESgD0

>WindowsAPIってのはC言語で実装されてる
win32api(≒WindowsAPI) は C から呼び出せるようになっているのではありますが、
win32api の実体が存在するかどうかは、また別の話になります
mac にて windows 向けのコードを実行させるための手段があるかどうかは、私にはよくわかりません
(wine とかが移植されているのですか?)
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 23:09:30.90:Ig86RmNy0

WindowsAPIを書いてる言語はバイナリってことですか?
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/25(火) 23:18:34.02:HAbRzuEs0
ソースコード全部をgithubに乗せれば話は早いです
要するに、現物を見るのが手っ取り早いです
デフォルトの名無しさん (ワッチョイ 42d2-MW2F) [] 2018/09/25(火) 23:18:38.51:SjmRGAva0
CPU
OS
ソースコード
実行ファイル
ライブラリ
API
この辺の理解がごっちゃになってるな
もしくは釣り
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/25(火) 23:23:33.73:1135EyDF0
試しに、VCではなく、GCCコンパイラ使って、
ソース修正せずに実行プログラムが作成出来るかな?
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 23:37:13.97:Ig86RmNy0

釣りではないです
大学では
バイナリ→アセンブリ→C言語→WinAPIやJava→高級言語(DirectXなどのライブラリ)
→統合環境(VisualStudio)
の順番で言語規模が高性能化するって習いました

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

間違っていますか?

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

どんな教育だよ...
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/25(火) 23:46:38.07:J8LSZpTD0

その言語や環境の並び、ざっくりしすぎというか突っ込みどころ満載でどこから訂正していいか困るレベルだよ。
テキストや教師がもんだいなのか、君がの理解不足でおかしなまとめ方をしてるのか…
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/25(火) 23:46:38.88:xp1IDT0a0
訂正するのがめんどいぐらいいっぱいまちがってる
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 23:53:43.26:Ig86RmNy0

どこらへんが間違ってますか?
間違いは財産です。教えてください。
デフォルトの名無しさん (ワッチョイ c212-yqSl) [sage] 2018/09/25(火) 23:54:12.64:HAbRzuEs0
>C言語であるならば、OSが直接読み込める形であるのだから
>どんなOSでも動く

しゅごい
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/25(火) 23:55:06.09:AGUJmjmE0
>高級言語→C言語にするには実行環境が必要ですが
「そもそもC言語であるならば、OSが直接読み込める形であるのだから
>どんなOSでも動くという理解です。

C言語は各マシンそれぞれのCPUやOSに対応した適切なコンパイラとAPIでコンパイルしないと動きません。
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/25(火) 23:57:02.58:J8LSZpTD0

まったく自分でプログラミングしてないなら実感沸かなくて当然なのだろうけど、その課題意味あるのかな。

それはともかく。
Cで書いたプログラムならどのOSでも 動く訳ではない。
Cで書かれたコードはOSぎ直接理解できるわけではない。そこでCのコードをOS上で実行できるコード(君の分類ではバイナリ)に変換する作業がいる。
その際、ターゲットとするCPUに合わせたコードに変換するから、違う種類のCPUの環境では動かない。
また、OSに関する機能は全部を自分の生成するプログラムに内包する訳ではなくて、OS側ですでに用意してあるプログラムを呼び出すだけだから、他のOSに自分のプログラムを持っていったら、呼び出す先のプログラムが存在しないので実行できないことになる。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/25(火) 23:58:21.66:Ig86RmNy0

正しいのでしょうがよく分かりません
C言語のほうが低級なのに、高級のWinAPIでコンパイルするんですか?
矛盾してるような…
WinAPIはコンパイルされる側のような…
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/26(水) 00:02:36.99:HESLqYz40

前提の理解が間違っているというか、APIが何者かまったくわかっていないよね。

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

> 大学では
お前の大学の講義資料のURLを晒せ。
今時の大学なら(学外から見えるかはさておき)普通は上げてるだろ。

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

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

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

とりあえず今ココではJavaはおいとく
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 00:09:35.96:I4Gvy1+q0
なんか根本的な事を教えてくれて泣けてきます
wiki見ても端折ってばかりで理解できなかったんで嬉しいです
でもそれでも分かりません…
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 00:09:53.01:h9A6ffHl0

すみません、APIをコンパイルではなくAPIをリンクの間違いでした。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 00:11:25.00:I4Gvy1+q0
知恵遅れでもできる環境

僕が使ってるのはCygwinとVisualStudioですね
学校の課題はCygwin推奨ですが、何故かVisualStudioも入れられましたw
デフォルトの名無しさん (ブーイモ MM62-Nssn) [sage] 2018/09/26(水) 00:13:32.35:OuxizmKlM

まず、windowsAPIはC言語等の関数として提供されてるのはわかる?
そんでその関数のソースコードは公開されていない。だから、自分が書いたソースコードだけをmacに持っていってもソースコードが足りないので動かない。

仮にソースコードを手に入れたとしても、内部でwindowsのカーネル(コアとなるソフト)だけが提供している機能を利用使って実装されているから、やはりmacに持ち込むことはできない。
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/26(水) 00:14:11.60:HESLqYz40

余談だけど、半角カナにこだわりのある通称半角クンに知恵遅れとか言われても気にする必要ないぞ。彼にとってただの二人称代名詞だから。
デフォルトの名無しさん (ワッチョイ 6561-YXup) [sage] 2018/09/26(水) 00:16:23.80:0JN26GcE0

ワイは希少種やったんか
世間じゃカーネルモジュールはどんな開発環境でやってるんや?
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 00:17:32.29:h9A6ffHl0
オレが書いたC言語のプログラムを機械語に変換すればようやくコンピュータで実行できるようになります。

APIは既に機械語に変換されているか、オレの書いたC言語と一緒に機械に変換されてからオレの機械語と結合して使われます。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 00:17:40.67:I4Gvy1+q0

まったく分かりません
WinAPIがC言語が混ざったらもう何がCでAPIなのか
もうわけわかりません
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 00:18:24.20:nZ7x0XR+0
で、javaはコンパイルするとバイトコードに変換される
で、そのできあがったバイトコードはJavaVM(コレがチミがバイナリと読んでるものになる)で動かすことができる
昔のpascalのpコードのパチモンと考えればいい

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

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

わかった?
デフォルトの名無しさん (ワッチョイ 42d2-MW2F) [] 2018/09/26(水) 00:18:39.07:ZP32HEFJ0

低級・高級(Low-Level/High-Level)は
言語体系がハードウェア実装=CPUに近いか
人間語に近いかどうかの話で
性能とは一切関係がない
(という話は確実に教科書に書いてあるはず)

CPUはバイナリしか解釈しないから
どんな言語を使ってもコンパイル作業が要る
デフォルトの名無しさん (ブーイモ MM62-Nssn) [sage] 2018/09/26(水) 00:22:18.55:OuxizmKlM

とりあえず、Cで何度かプログラム書いてみたらいいんじゃないかな。
知識だけ身につけると頭でっかちになっちゃうからね。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 00:23:21.36:I4Gvy1+q0

C言語は言語の中では最速だというのは教科書に書いてましたよ
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 00:24:33.00:T1RBGvug0

Cで書いたソースの多分先頭付近に並んでいると思う
#include で始まる行の部分だけでも公開してみて
WindowsAPIの為に入っている行を取り除けば
(このままではコンパイルエラーになるかも知れないが)
Wacに持っていく入り口にはたどり着ける
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 00:26:15.28:nZ7x0XR+0
たとえばmacで
WinAPIと同じインターフェースもつ同じ機能のAPI(書くことができるかどうかは別ににして)を
Cで書くとmacでwindowが動く

時間があるならついでに
なんで、POSIXというもんがあるか調べてみるといい
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 00:26:28.94:I4Gvy1+q0

#include<stdio.h>
int main(void)
{
〜中身〜
}
です。
int main
stdio.h
の二つはおまじないと聞きました
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 00:31:29.48:T1RBGvug0

ホントにそれだけなら、そのまま
Macに持って行けるんじゃないか?
あとはMac側でコンパイラが使えるかどうか、だな
VCでないと困る事ある?
MacでやるならXcodeと言うのを使った方が良いように思うが
デフォルトの名無しさん (ブーイモ MM62-Nssn) [sage] 2018/09/26(水) 00:32:08.86:OuxizmKlM
最初にWindowsAPIなんて言い出したやつは出てこい!!

  ドッカン   ゴガギーン
    _ ドッカン  ☆
===( )   /
`∧∧_||___ ∧∧
(  )|||   |(Д`)
f  ⌒~ ||   ||  \
|  / ̄ |   |/| / /
|  |  | ヘ/\|_/ /
|  | ロ|ロ\/\(_ノ)
( (_ \ |   | Y /
| ||\ ヽ|   | ||
| || / / |   | ||
| ||/ /_|___| ||
(_(_)     (__)
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 00:32:38.48:nZ7x0XR+0
そういうコードだったら
macでコンパイルしなおせば
普通に動くハズ
デフォルトの名無しさん (ワッチョイ 22f9-xOzC) [sage] 2018/09/26(水) 00:33:06.80:HESLqYz40

C言語が速いんじゃないんだよ。
C言語で書かれたソースをコンパイルして生成されたバイナリコードが速いんだよ。それはCPUが直接実行できる形式だから。
別に他の言語でも、コンパイルしてバイナリコードが生成できるものは、本質的にはCと同じ。

遅いのは、バイナリコードを生成せずに、その言語固有のコードを生成して、それを別のプログラムが解釈しながら実行するようなタイプの言語だよ。例えばJAVAのような。(実行時コンパイルとかはこの際おいておく)
デフォルトの名無しさん (ワッチョイ 6561-YXup) [sage] 2018/09/26(水) 00:33:58.19:0JN26GcE0

おまじないは一個要らへんで
$ cat test-printf.c
int main(void)
{
printf("Hello\n");
return 0;
}
$ gcc test-printf.c 2> /dev/null
$ ./a.out
Hello
デフォルトの名無しさん (ワッチョイ 42d2-MW2F) [] 2018/09/26(水) 00:34:42.00:ZP32HEFJ0

それは教科書がおかしいか誤読してると思われる
「現代の高級言語の中では最速のバイナリをビルドできることが多い」
とかならまあありだが
デフォルトの名無しさん (アウアウカー Sae9-s2i8) [sage] 2018/09/26(水) 00:37:18.40:3GYry5Z9a
OSによって動くコード(アセンブリ)が違う

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

しかし、標準ライブラリ以外はその対象OS用に用意されていない場合もあるのでそういうライブラリを使用した場合コンパイルが出来ない
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/26(水) 00:37:56.89:tnf9UX1gM
ちょっと教科書名教えてくれwww
デフォルトの名無しさん (ワッチョイ 42d2-MW2F) [] 2018/09/26(水) 00:38:29.20:ZP32HEFJ0
てかレポート出すような講義で「おまじない」で済ますもんなのか最近は
最初の質問もexeをそのままMacに持っていって動きますか?だったのかも
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 00:43:17.15:nZ7x0XR+0
cygwin入ってると書いてあった
きっとgccもはいってるハズ
手動でコンパイルすればすぐに実行モジュールができるハズ
デフォルトの名無しさん (ワッチョイ 469f-coYL) [sage] 2018/09/26(水) 00:45:01.24:9UO6BO9+0

標準入力やファイルからテキストのデータを読んで計算してから標準出力またはファイルに出力するような
ほとんど計算しかしないようなやつなら何一つ変えずにコンパイルできる可能性がある。
しかしGUIで入力を受け付けてGUIで結果表示みたいな作りの場合はその部分だけMacに合わせて変更する
必要があると思う。(もし互換性のあるライブラリがあるのであればそれをリンクすればなんとかなるが)。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [sage] 2018/09/26(水) 00:45:48.08:9UO6BO9+0
しまった。リロード忘れて書いてしまった。
デフォルトの名無しさん (ワッチョイ 2e80-tQZR) [sage] 2018/09/26(水) 01:37:55.43:P+3GV8ah0
バイナリは、各CPU に固有のもの。
intel・AT&T では逆に書く

; for intel syntax
mov eax, 1

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

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

C → LLVM → 機械語
デフォルトの名無しさん (ワッチョイ c964-vX2D) [sage] 2018/09/26(水) 02:25:42.64:p8TYnMT50
テキストファイルを#includeしたりするのっておもしろそうと思った。
#include "file.txt"
使い道がほとんど思いつかんけど。
正規化されたcsvファイルなら有用かもしれない。
デフォルトの名無しさん (ワッチョイ 469f-coYL) [] 2018/09/26(水) 02:56:13.26:9UO6BO9+0

XPM や XBM フォーマットの画像ファイルは中身がテキストファイルでC言語になっているので、
プログラム中で使いたい時に #include で読むなんてことを昔やった事がある。
今でも画像を編集するソフトではそういうフォーマットに対応しているのがあるかも知れない。
あったら画像をファイルに保存後に中身をテキストエディタで見てみると良い。

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

よくアプリケーションのオプションで--helpみたいなオプションがあってそれを指定すると
標準出力にヘルプ情報を吐き出すじゃない。
で,普通それを実現するには,print_help()関数みたいなのを作って
その中で
puts("Usage: xxx [-dx] <file>...");
↑こういうのをずらずら書きならべると思うんだよ。
ttp://http://git.savannah.gnu.org/cgit/hello.git/tree/src/hello.c#n127←こんな風に。
で,そのヘルプファイルを外部ファイルにできないかな〜と思ってさ。
print_help() {
puts("
#include "help.txt"
");
return 0
}
こういう感じで。もちろんこれはコンパイルエラーになるけど。
デフォルトの名無しさん (ワッチョイ cde3-tHrl) [sage] 2018/09/26(水) 06:52:38.46:ME0063O80
普通にfopen(),fgets()しろよ
デフォルトの名無しさん (ワッチョイ 2ee8-IBuP) [] 2018/09/26(水) 07:02:15.89:KRhEkOMN0
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;  #include "file.txt"
  ヾ;;;ハ    ノ       .::!lリ;;r゙
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f.   俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/26(水) 07:12:11.89:Ozpnqin20
argv[0]を使わずにusage表示するやつ嫌い
デフォルトの名無しさん (ワッチョイ 06d5-KkRk) [sage] 2018/09/26(水) 07:27:14.31:3KpC5Lnu0

実行ファイル内に組み込みたいんじゃないの
デフォルトの名無しさん (ワッチョイ 01f2-coYL) [sage] 2018/09/26(水) 07:40:06.18:slacS0cU0
includeするファイルの拡張子が.hか.txtなんて関係ないよな。
中身がCのコードとして解釈できるかどうかだけで。
デフォルトの名無しさん (ワッチョイ be23-coYL) [sage] 2018/09/26(水) 09:03:42.94:X1sPOZNr0

おれは好きだよ
argv[0]の長さとかわからないし、不安になるもんね
デフォルトの名無しさん (ワッチョイ 06d5-KkRk) [sage] 2018/09/26(水) 09:06:37.66:3KpC5Lnu0
独学で始めたての頃はリンカを知らなかったから、.c も全部 include してまとめてコンパイルしてたw
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/26(水) 09:48:26.11:QtvShas/a

かといって argv[0] って必ずプログラムファイルへのフルパスの文字列になってる保証はないよな?
UNIX系OSだとexecに渡す引数は実行するプログラムへのパスとargvの配列は別に指定できるしシェルは自身がログインシェルとして起動されたかどうかをargv[0]利用して判別してるし。
デフォルトの名無しさん (ブーイモ MMed-Bf5X) [sage] 2018/09/26(水) 09:54:31.75:+QPOg/oyM
組み込みでreal型を使うメリットってなんでしょうか?
floatやdouble型との違いを教えて頂けないでしょうか?
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 09:58:20.00:wpdgBSuMa
「パス」は正しくないでしょ
ユーザがシェルに入力した文字列が入るわけで
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 10:04:04.84:wpdgBSuMa
real型ってなんだ?
D?
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/26(水) 10:17:13.10:Ozpnqin20

フルパスである必要はない
そんなのはwhichで出るから重複もいいとこ
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/26(水) 13:07:42.63:tnf9UX1gM
好きか嫌いかより規格で語れよ!!
デフォルトの名無しさん (フリッテル MMd6-l/4I) [sage] 2018/09/26(水) 13:15:13.67:GcxNqKYyM
で?
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/26(水) 17:10:26.81:dsR47lxwa

argv[0] が "-" だったらどうするよ。
デフォルトの名無しさん (ワッチョイ c964-vX2D) [sage] 2018/09/26(水) 17:10:59.41:p8TYnMT50
まあやっぱり#include "file.txt"なんて常人は考えねーよなw
いろいろすまんかった。
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 17:23:34.23:T1RBGvug0

使い道はあるよ
多量のマクロ定義リストを読ませるとか
デフォルトの名無しさん (ワッチョイ c1ea-CZft) [sage] 2018/09/26(水) 17:27:31.74:lDpRvfaq0
ビットマップを本体のコードに埋め込むのに

char data[] = {
#include "bitdata.inl"
};

とかやった。 bitdata.inl は別のソフトで生成
デフォルトの名無しさん (バッミングク MMf5-vwf2) [sage] 2018/09/26(水) 17:33:26.10:lncCaYQKM

disるつもりはないし状況も分からんのだけど、バイナリデータをコードに埋め込んでコンパイルかけるのは筋が悪いような?
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/26(水) 17:35:54.43:dsR47lxwa
XPMやXBMみたいなテキストなんだろ
デフォルトの名無しさん (オイコラミネオ MMc9-KkRk) [sage] 2018/09/26(水) 17:36:31.54:cOtTFh6NM

file.txt を C の文字列にした file.c なり file.h なりを作る簡単なスクリプトなり書いて、make ファイルでそれが動いて取り込まれるようにすりゃいいんじゃね。

usage:
-h help
-u unko

みたいなテキストを
#define USAGE "¥
usage:¥n¥
-h help¥n¥
-u unko ¥n¥
"

みたいな define か何かにすればいい。
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 17:37:28.54:T1RBGvug0
大量のテーブルデータをマクロ型式で記述して
includeの直前でマクロを望む内容で定義すると便利
デフォルトの名無しさん (ワッチョイ c1ea-CZft) [sage] 2018/09/26(水) 17:40:44.37:lDpRvfaq0

(Windowsの話)
ライブラリを作ってるときに、そこで使いたかったんだが(ImageList)
リソースというわけにもいかず、ファイルを読み込むのもライブラリ化の意図からずれるし で
埋め込んだのよ

簡単に肥大化するから筋が悪いのは半分承知
デフォルトの名無しさん (ワッチョイ c1ea-CZft) [sage] 2018/09/26(水) 17:41:52.02:lDpRvfaq0
ああ 件のファイルは 0x○○, 0x○○, … なテキストのファイルです
デフォルトの名無しさん (バッミングク MMf5-vwf2) [sage] 2018/09/26(水) 17:50:39.66:lncCaYQKM

ああ、なるほど。
まぁ俺も組み込みでビルド番号を自動生成してソースにincludeで組み込むこともあるので人のことは言えないけど。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 20:19:36.31:I4Gvy1+q0
WindowsAPIを機械語にするソフトを機械語にするソフトを機械語にするソフトを…
って考えたらまた頭が混乱してしまいました…
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 20:25:14.53:07am72nua
APIとはインターフェースである。
見えるのは表面だけで中身なんてどうなってるかわからない。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 20:29:26.48:I4Gvy1+q0
CのコンパイラはWinAPIでしかかけないってことですか?
デフォルトの名無しさん (ワッチョイ 61b3-CZft) [sage] 2018/09/26(水) 20:41:32.38:zSos1f990
Advanced windows買って読め じゃ乱暴か…
デフォルトの名無しさん (アウアウカー Sae9-rLjT) [] 2018/09/26(水) 20:43:53.50:MrbR9bENa

まずはWindowsAPIとは何なのかを調べろ。話はそれからだ。
デフォルトの名無しさん (ワッチョイ c964-vX2D) [sage] 2018/09/26(水) 20:45:37.17:p8TYnMT50

にゃるほど。
まあ それでもいいんだけど,結局変換の手間があるんだよね。
しかし一度でも.hか.cファイルを作ったらあとはそれを#includeすれば
複数のファイルに使えるってのは有用かもしれん。
Usageでは↑複数には適用できないけど,ライセンスとか。
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 21:08:33.17:07am72nua
Cのコンパイラがpythonで書かれていようと俺は一向に構わんがインターフェースでどうやって書くのかは知らない
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 21:29:52.27:h9A6ffHl0

最初のコンパイラは人間が手入力でバイナリを書いた
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 21:40:12.24:I4Gvy1+q0

CをコンパイルするのはWindowsAPIって昨日聞きましたが?
C自体では動かないのだからWindowsAPIでコンパイルするのでは?
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 21:45:31.26:T1RBGvug0

誰もそんな事言って無いだろう

探したけどないぞ、そんなの
デフォルトの名無しさん (ワッチョイ 19b3-vwf2) [sage] 2018/09/26(水) 21:48:20.48:Jt0rVGX10
いい加減、釣りだと気づけよw
てかみんな気付いた上で相手してるのか。
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 21:49:37.93:h9A6ffHl0

Winapiでコンパイルじゃなくてwinapiとリンクと間違いだったって言ったやん
デフォルトの名無しさん (ドコグロ MMf5-JQ9C) [sage] 2018/09/26(水) 22:07:50.72:MrhohV/JM

流石に最初のコンパイラはアセンブリ言語だろ
最初のアセンブラはバイナリ入力しただろうけど
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 22:09:29.37:I4Gvy1+q0
コンパイラはWindowsAPIの実装を知ってる人じゃないと作れないってことですか?
よくコンパイラ入門なんて本あるけど作れるんでしょうか?
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 22:18:36.87:T1RBGvug0
WindowsAPIは直接コンパイラとは関係ない
デフォルトの名無しさん (ワッチョイ 2d48-coYL) [sage] 2018/09/26(水) 22:22:27.92:Ozpnqin20

さあねえ
どうしろって言いたいの?
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 22:33:54.33:I4Gvy1+q0
WinAPIはインターフェースだけを提供していて実装は分からない
つまりコンパイラを考える人はMicrosoftの開発者だけってことですか?
それだとコンパイラ入門ってどういうことなんでしょうか?
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 22:40:30.36:07am72nua
1950年代にもうそれなりのアセンブリあるんだからすごいよね。
みんな頭いいんだな。
デフォルトの名無しさん (ワッチョイ 2e81-coYL) [sage] 2018/09/26(水) 22:41:00.36:T1RBGvug0

君はコンパイラを使いたいのか
それともコンパイラを作りたいのか
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 22:44:12.95:I4Gvy1+q0
すいません
正直話すと
レポートってのは2年のとき落とした履修で
今は卒論でコンパイラ作りたいんです…
つまりダブルということになります…
デフォルトの名無しさん (オイコラミネオ MMc9-KkRk) [sage] 2018/09/26(水) 22:48:53.63:cOtTFh6NM

とりあえずアセンブラでも作ってみたら。
コンパイラ作るよりずっと簡単だけど、いろいろ学べることは多いと思うよ。
デフォルトの名無しさん (ワッチョイ 2d8a-l/4I) [sage] 2018/09/26(水) 22:52:02.96:DUFIzm4n0
コンパイラ作るだけならCのソースからアセンブリ言語に変換するプログラムを書くだけなのでWinAPIは関係ない話
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 22:55:42.96:h9A6ffHl0

アセンブラも広義ではコンパイラだろ
こまけえな
デフォルトの名無しさん (アウアウエー Sa4a-KpFT) [sage] 2018/09/26(水) 23:00:17.80:07am72nua
速度とか高級低級云々の話はインタプリタを持ち出した方が良かったのかね。
抽象的な機能を提供するという点ではAPIも近いところはあるね。
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 23:04:55.14:I4Gvy1+q0

例えばprintf関数のアセンブリは
どのOSだろうが一緒なんですか?
デフォルトの名無しさん (ワッチョイ 42b3-JQ9C) [sage] 2018/09/26(水) 23:05:53.49:s3sau8dm0

> アセンブラも広義ではコンパイラだろ
全然違うしw
雑すぎるわ
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 23:07:11.91:h9A6ffHl0

うるせえよ
意味伝わってんのにネチネチ粘着すんなよダリい奴だな
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 23:10:27.33:h9A6ffHl0

違うよ
OS毎にprintfのバイナリが用意されてて
おまえが書いたコードをコンパイルしてからそいつとリンクして繋げるだけ
284 (ワッチョイ 2e80-tQZR) [sage] 2018/09/26(水) 23:12:49.78:P+3GV8ah0

ここに書いた

バイナリ・機械語は、各CPU に固有のもの。
intel・AT&T では逆に書く

開発者は、各CPU 毎にプログラミングできないから、
仮想アセンブラのLLVM ができた
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 23:15:29.87:I4Gvy1+q0

ちょっと複数のPC勝ってアセンブリ確認してみますw
例えばWindows98とWindowsMEとかでも厳密に言えば
アセンブリが違うかもしれないってことですよね
デフォルトの名無しさん (ワッチョイ 6175-yLbS) [sage] 2018/09/26(水) 23:17:41.51:h9A6ffHl0

デフォルトの名無しさん (アウアウウー Sa25-xOzC) [sage] 2018/09/26(水) 23:23:11.54:VlfJEAqXa

コンパイラがそもそもどんな物かも分かってないんだから、コンパイラを作ろうなんて考える前に、コンパイラを使ってごく普通の簡単なアプリケーションプログラムを作って何をやってるのか理解しなよ。
studioやmainがおまじないだとか言ってるレベルで無謀過ぎるぞ。
デフォルトの名無しさん (アウアウウー Sa25-xOzC) [sage] 2018/09/26(水) 23:24:21.49:8QQNIK9ea
stdioの誤記です
デフォルトの名無しさん (ワッチョイ f1e9-7de5) [] 2018/09/26(水) 23:29:31.07:I4Gvy1+q0

なんか分かりました
コンパイラっていうのは9割型共通のルールのpushやmoveでかけるアセンブラ
をOS向きにさらに改良するってことでしょうか…
自分でprintfのアセンブラを書いてコマンドプロンプトで実行してみます
さて何行になるやらですが
デフォルトの名無しさん (ワイモマー MM62-Y32S) [sage] 2018/09/26(水) 23:39:57.62:tnf9UX1gM
こんなタイミングでIDって変わるもんなの
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 23:44:08.19:nZ7x0XR+0
オマエ、分かってて
このスレの低学歴知恵遅れをおちょくってるだろ
しかもちゃんと罠もしかけてる

オマエが思ったとおりこのスレの低学歴知恵遅れはちゃんと答えれない

まずこのこのスレの低学歴知恵遅れは
実行モジュールがどういったもんか分かってないからな
デフォルトの名無しさん (ワッチョイ c980-yqSl) [] 2018/09/26(水) 23:49:25.75:nZ7x0XR+0
レスをみても分かるとおり
低学歴知恵遅れはなにも分かってないくせに
分かってるふりするのが精一杯

低学歴知恵遅れ特有のレスをしている

オマエは低学歴知恵遅れを陰湿にいじめてる
284 (ワッチョイ 2e80-tQZR) [sage] 2018/09/26(水) 23:59:09.60:P+3GV8ah0
そもそも、Windows だけでも、64/32 ビットCPU で、
CPU の命令の、サイズ・種類などが異なる

i3, i5, i7 など高額・高機能になるほど、
3D・動画のコーデック命令なども付け加えられているから、処理速度は速くなる

そういう命令がないCPU では、ソフトウェアで実行されるから、すごく遅い
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 00:12:48.47:pq96CSzd0
きっとなこのスレの低学歴知恵遅れは
PEフォーマット、EXEフォーマットとかも知らない
Windows APIがDLLの関数であることも分かってない

この低学歴知恵遅れは
コンパイルしたソースをマシンコードにしたものだけが格納されてると思ってる
レスみればほぼ間違いない
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/27(木) 00:16:16.06:GWQb325r0
まーた半角クンが湧いちゃったじゃないか。
変な正確でも,言うことが正しければいいんだが,
こいつの話は間違った無根拠なものばっかりだからなぁ……。
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 00:17:47.16:pq96CSzd0
じゃあオマエが質問にオマエが答えてみ
オレは常にスキがないほどカンペキなレスしか書いてないからな
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 00:18:53.88:pq96CSzd0
まずこのスレにいるような程度のヤツラではムリ
はっきりといえる
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 00:21:06.23:pq96CSzd0
こういとこでもな
低学歴知恵遅れであることは隠せない
デフォルトの名無しさん (ワッチョイ 9fb3-JAAg) [sage] 2018/09/27(木) 00:55:00.60:fxNPrOWH0

バカはこれだから w
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 01:21:44.64:pq96CSzd0
質問してるヤツの質問が
このスレにいるような低学歴知恵遅れには高度すぎた

しょうがない
デフォルトの名無しさん (ワッチョイ 9feb-tkB1) [sage] 2018/09/27(木) 02:26:11.63:mRs+7RE20
デフォルトの名無しさん (ワッチョイ 7748-aemA) [sage] 2018/09/27(木) 09:17:03.76:Zeo03I1R0
> なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?

たぶん俺じゃないってとぼけるだろうな
デフォルトの名無しさん (ワッチョイ 978f-mzb1) [sage] 2018/09/27(木) 11:29:18.01:XEXpxXRW0

それについては
にも書いてるようなOSに対応したの部分にその意味も含めたつもりです。少なくともオレはそれを意識して書いた
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/27(木) 12:40:10.03:U92lHhY6a

この話の元はなのでどうすんのかなと思ってな。
デフォルトの名無しさん (ラクッペ MM0b-2bq/) [sage] 2018/09/27(木) 13:02:52.87:rIrQdVdgM
法的(笑)
330 (ワッチョイ 7748-aemA) [sage] 2018/09/27(木) 16:30:52.70:Zeo03I1R0

おまえ304か?
strcmp(argv[0], "-") == 0のときに
printf("%s", argv[0]); を実行した場合は
- と出力されるのが何かまずいのかと聞いているんだ
答えてくれ
デフォルトの名無しさん (ワッチョイ 7f23-aemA) [sage] 2018/09/27(木) 16:57:20.64:WzI0x/ML0
"-"のときなら全然まずくないけど、1MBとか1GBくらいの0無しバイナリだと
ちょっと不機嫌になるよね
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/27(木) 17:34:58.79:GWQb325r0
ファイル名を使った攻撃とかできそう
デフォルトの名無しさん (アウアウカー Saab-6oYK) [sage] 2018/09/27(木) 18:22:43.20:mzM5OoPla

スタジオドットエイチって覚えてる人にありがちな間違いだな
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/27(木) 18:25:58.92:0MoXCxtia

usageの意味がなくなるのでは?
そんなもん気にしないってなら別にいいんだけどね。
デフォルトの名無しさん (ガックシ 068f-NXNJ) [sage] 2018/09/27(木) 18:52:27.42:v62G+4TD6
ADI法(ノイマン境界条件)って具体的に何をすればいいのかさっぱりわからない
そもそも2次元領域(0,L)^2での計算ってCプログラム上でどう構成すればいいんだろう…1次元はなんとかなったけど
デフォルトの名無しさん (ガックシ 068f-NXNJ) [sage] 2018/09/27(木) 18:54:30.86:v62G+4TD6
と質問したかったけど数学寄りの話かな、スレチだったらすまん
デフォルトの名無しさん (ワッチョイ 97e9-DIZe) [] 2018/09/27(木) 19:30:25.34:+bSAjOWL0
今日アセンブリを作ってコマンドプロンプトで動かしてみましたが無反応です
moveとかのアセンブリはコマンドプロンプトは読み込めないんですか?
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [] 2018/09/27(木) 19:30:51.34:etRlHd3dp
ttps://i.imgur.com/Pg8FdUT.jpg


Helloしか出力されないんですけど、どうすれば治りますか?
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/09/27(木) 19:35:33.53:Q55DNguR0

端末が受け取ってないだけとか?
printf("%lf\n", pi/a);
にすれば出力される可能性が高い。

動作環境特有の話かもな
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/27(木) 19:39:41.84:etRlHd3dp

返事ありがとうございます。
結果は変わりませんでした。
環境はターミナルです。
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/09/27(木) 19:45:28.08:Q55DNguR0
print だからフォーマット指示は %f か
他に理由がおもいうかばにゃい
デフォルトの名無しさん (ササクッテロル Sp4b-NXNJ) [sage] 2018/09/27(木) 19:52:24.14:YhkMlANsp
z=pi/aとおいてzを出力させるんじゃダメなのか
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/09/27(木) 19:58:12.16:ul07XbU+a
lとoの間辺りに%f置いてみれば
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/27(木) 20:05:05.17:rwW0e8CF0

問題なさそうなんだけどね。

ttp://https://ideone.com/kZ5gKx
デフォルトの名無しさん (ワッチョイ ff81-DshI) [sage] 2018/09/27(木) 20:11:45.43:WRRv4FYM0
printf("%lf¥n",pi/a); ってやってみたら?
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/09/27(木) 20:12:24.71:3JRfbUkA0
gdbか何かで止まってるって落ちはないよね?
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/27(木) 20:12:41.87:etRlHd3dp
すみません。今電車の中なんで、家に帰ったら全方法を試します。
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/27(木) 20:13:00.51:etRlHd3dp
皆さんアドバイスありがとうございます。
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/09/27(木) 20:13:49.60:zXUlvxZ1M
だれもMac持ってねぇのかwww
いや俺もだけどww
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/09/27(木) 20:15:03.16:zXUlvxZ1M
連投ですまんがまさかコードだけ更新してコンパイルし直してないとか
初学者あるある
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/09/27(木) 20:17:54.71:Q55DNguR0
どこから Macの環境に限定できるのか俺にはよくわからん
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/27(木) 20:22:16.63:rwW0e8CF0

左上の黄色と緑の丸
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/27(木) 20:23:07.84:rwW0e8CF0
Macでやっても出力は同じだよ
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/09/27(木) 20:23:31.86:3JRfbUkA0

きっとソレダ
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/27(木) 20:28:13.50:0MoXCxtia
左上の黄色と緑の点かな?
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/09/27(木) 20:28:23.35:Q55DNguR0

ですよねー
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/27(木) 20:29:31.61:0MoXCxtia
リロードせずにゆっくり書いてたらほとんど同じ書き込みが既にされていたorz
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/09/27(木) 21:28:23.17:pq96CSzd0
最後に
fflush(stdout);
と書けばきっと出力される

やってみ
デフォルトの名無しさん (ワッチョイ 7748-aemA) [sage] 2018/09/27(木) 21:32:36.13:Zeo03I1R0

全然意味がわからない
お前は何を言っているんだ?


なぜ意味がなくなるんだ?
デフォルトの名無しさん (ワッチョイ 9f1b-uqLe) [sage] 2018/09/27(木) 23:48:28.04:RQl7S0Gm0
来たよーム板に。
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/28(金) 08:16:40.85:TLhVFQk50
sed -e 's/.*/"&\\n"/' < USAGE > USAGE.c
として
#include "USAGE.c"
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/28(金) 09:31:20.28:ctzrbTkBa

だってコマンドの使い方の説明にならないじゃん。
デフォルトの名無しさん (ワッチョイ 7748-aemA) [sage] 2018/09/28(金) 10:24:36.39:RVKB6eOl0

- という語句は予約されていると言いたいのか?
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/28(金) 13:21:05.27:TLhVFQk50
somecmdというアプリケーションがあったとして
Usage: somecmd [--option] <file>...
こういう出力を
printf("Usage: %s [--option] <file>...\n", argv[0]);
まあこういう感じ(もうちょっと変数やらをはさむかも知れんが)で出力するときに
argv[0]がsomecmdじゃない場合がけっこうあるってことじゃないの?
そしてそういう場合にUsage: ...の形式が壊れるんじゃないか,と。
デフォルトの名無しさん (ワッチョイ 378a-DshI) [sage] 2018/09/28(金) 13:22:39.05:X1M2oU/e0

結構あるって、例えばどういう操作をする場合だろうか?
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/28(金) 13:23:29.81:TLhVFQk50
しかし俺が思うのは,そういう場合にはたして--helpを参照するかな。
argv[0]!="somecmd"の場合ってmain関数を他のプログラムから呼び出すとかそういう場合でしょ。
その時は,そのプログラムのUsage: ...が欲しい訳だから結局somecmdのUsage: ...なんて出力する必要ないでしょ。
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/28(金) 13:24:49.39:6mi1IA73a

え?もしや - というコマンド作った場合の話?

そういうことではなくて argv[0] は起動する側が自由になんでもセットできるからコマンド名になってる保証はないという話だよ。
まあ普通のシェルから起動する場合には大丈夫だろうけど、環境によっては何も入ってないかも知れないし保証はできない。
デフォルトの名無しさん (ワッチョイ 378a-DshI) [sage] 2018/09/28(金) 13:33:55.41:X1M2oU/e0
何でもセットできる場合って、
そういう環境では0に限らず、
argv配列を使えないって事だよね
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/09/28(金) 13:38:19.13:s+4Nw5Rza
busyboxってargv[0]で振り分けてんの?
デフォルトの名無しさん (ドコグロ MM0b-JAAg) [sage] 2018/09/28(金) 13:55:27.31:25C/+Q0qM

そんな変な環境使ったことないからどうでもいいや
デフォルトの名無しさん (ワッチョイ 378a-DshI) [sage] 2018/09/28(金) 14:22:34.06:X1M2oU/e0
> 二つの仮引数を定義する場合,関数 main の仮引数は,次の制約に従わなければならない。
>- argc の値は,非負でなければならない。
>- argv[argc]は,空ポインタでなければならない。
>(中略)
>- argc の値が正の場合,argv[0] が指す文字列は,プログラム名(program name)を表す。
> ホスト環境からプログラム名を得ることができない場合,argv[0][0] は,ナル文字でなければ
> ならない。
JIS X3010:2003 5.1.2.2.1

だそうです。
デフォルトの名無しさん (ワッチョイ bfd5-E/Y9) [sage] 2018/09/28(金) 16:10:35.86:mp2jkAzV0
argv[0] にはパスも含まれ得るし、シンボリックリンクから起動されれば実体の名前ではなくなるけど、usage にコマンド名としてコマンドライン上のコマンドパスを表示したいの?
デフォルトの名無しさん (ワッチョイ 171d-aemA) [sage] 2018/09/28(金) 17:12:54.15:08RUBfsA0
呼ばれた名前でusageわざわざ変えてるコマンド見たことないな
せいぜい例示コマンドが呼ばれた名前に変わってるくらい
デフォルトの名無しさん (ワッチョイ 171d-aemA) [sage] 2018/09/28(金) 17:16:02.91:08RUBfsA0
       ゴガギーン
             ドッカン
         m    ドッカン
  =====) ))         ☆
      ∧_∧ | |         /          / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     (   )| |_____    ∧_∧   <  おらっ!出てこい
     「 ⌒ ̄ |   |    ||   (´Д` )    \___________
     |   /  ̄   |    |/    「    \
     |   | |    |    ||    ||   /\\
     |    | |    |    |  へ//|  |  | |
     |    | |    ロ|ロ   |/,へ \|  |  | |
     | ∧ | |    |    |/  \  / ( )
     | | | |〈    |    |     | |
     / / / / |  /  |    〈|     | |
    / /  / / |    |    ||      | |
   / / / / =-----=--------     | |
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/28(金) 18:30:23.06:mFoW6O3i0
実行ファイルをリネームしてもusageが使えるとか
シンボリックリンクで別名作っても大丈夫とか
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 18:42:59.76:6WLCN0vmp

ttps://i.imgur.com/wgOfjjh.jpg
ttps://i.imgur.com/FL413Fu.jpg

課題で忙しくて、返信できませんでした。半泣きになりながらやってました。
本当にすみません。今からやってみますね。
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/28(金) 18:46:59.61:a9B9WfnIa

きっとシベリア鉄道に乗っていてまだ家に着いていないのだろう。
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/09/28(金) 18:52:40.13:s+4Nw5Rza

きったねえソースだな
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 18:59:04.08:6WLCN0vmp
ttps://i.imgur.com/Yc7Gep8.jpg

画面が汚くて申し訳ございません。
gccコマンドで実行ファイルをその都度作成しなかったのが原因でした。
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 19:00:30.32:6WLCN0vmp

具体的にどこが汚いですか?
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/09/28(金) 19:05:03.12:a9B9WfnIa

UNIX系OSでは compress, gzip, bzip2, xz とかの圧縮コマンドが自分が何のコマンドで動かされたかによって動作変えてるね。
同じ実行形式のバイナリを例えば gzip なら gunzip にリンクしておいてそれを実行すると gzip -d と同じ動きになる。
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/28(金) 19:06:09.19:mFoW6O3i0

本気にしなくて良いぞ
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/09/28(金) 19:07:43.61:s+4Nw5Rza

まるでCみたいだ
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 19:11:08.13:6WLCN0vmp

c言語をずっと使ってきたので、その名残があるかもしれません...
デフォルトの名無しさん (ワッチョイ 778a-0NLG) [sage] 2018/09/28(金) 19:16:14.15:/54mTdmW0
ずっと使ってきたのならなんで素人レベルのミスしてるのw
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 19:19:45.55:6WLCN0vmp

コマンドプロンプトの環境が初めてだったからです。
デフォルトの名無しさん (ワッチョイ 171d-aemA) [sage] 2018/09/28(金) 19:20:23.68:08RUBfsA0

まあ初学者あるあるだなw
俺にも覚えがある

俺の予想が的中()ということで今日から俺が半角ニキやで
デフォルトの名無しさん (ササクッテロル Sp4b-MQF+) [sage] 2018/09/28(金) 19:27:09.29:6WLCN0vmp

ありがとうございます!
デフォルトの名無しさん (ワッチョイ 9f12-q1nr) [sage] 2018/09/28(金) 21:52:19.80:voc6Rn8M0
256倍本に同じような話があったな
デフォルトの名無しさん (ワッチョイ ff32-aemA) [sage] 2018/09/28(金) 22:11:42.42:S1GcH4lv0

gccとg++とか、grepとegrepとかあるやん
人間だって「陛下」と呼ばれたか「クズ」と呼ばれたかで同一人物でも行動ちがうだろ
デフォルトの名無しさん (ワッチョイ ffe8-/YFy) [sage] 2018/09/28(金) 23:19:48.69:iWGXqAI10

いいフォントだな〜
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/28(金) 23:58:56.90:TLhVFQk50
Vimを使うんなら
:syntax enable
くらいしろ
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/09/29(土) 01:10:11.80:0yVwVmRZM
viewなんじゃねーの
カリカリすんなよ
Macじゃどうか知らんがワイのvimrcはターミナルがカラー対応してれば勝手にsyntax on て書いてるで
デフォルトの名無しさん (ワッチョイ 178a-aemA) [sage] 2018/09/29(土) 17:41:22.99:XiPCev9Z0
Cってファイル毎のstaticが多くね? カプセル化だと思うが、それとか、do {} while(0)とか・・・
なして、そこまでしてCなんか使うんだべ?
デフォルトの名無しさん (フリッテル MM4f-acSC) [sage] 2018/09/29(土) 17:48:39.58:cLBgNyTBM
自己満足に浸るため
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/09/29(土) 17:52:30.71:s4F/hYZia
変数は少ない方がいいが、クラスのメンバー的なもんは仕方ないんじゃないか?どこかに書かないと。
デフォルトの名無しさん (ワッチョイ ff23-Kdc7) [sage] 2018/09/29(土) 19:04:51.98:ZFQaS3Ne0
基本情報のc言語ってどんくらいのレベルなの?今度受けようと思うんだけど
デフォルトの名無しさん (ワッチョイ d74f-q1nr) [sage] 2018/09/29(土) 19:17:50.68:oiqQJDSj0

今現在Cを使う理由は、以下しかない。
1. 最速のコードが欲しい
2. 最小のコードが欲しい
3, 他言語では出来ないほど細かく指示したい
4. 既存のCプロジェクトの継続

てゆうかマジで理工系であらかじめCを使うと分かり切っている奴以外は、
初心者がCを選択する理由はないから止めとけ。
あと、ここでこれまでやってた「動く/動かない」レベルのやりとりは、
大学の授業の先生や同級生に聞いた方が圧倒的に早いからそうしろ。
デフォルトの名無しさん (ワッチョイ 9f60-+gc+) [sage] 2018/09/29(土) 19:20:43.09:vBAQmIFc0

C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/09/29(土) 19:29:15.10:PLQNiWP00

ワンチップマイコンの組み込みソフトはC言語1択だけどな。
C言語は最低限のスキルとして習得しておくべき。
デフォルトの名無しさん (ワッチョイ d74f-q1nr) [sage] 2018/09/29(土) 19:34:28.70:oiqQJDSj0

俺はLinusの意見には同意だぞ。
ただ、それはC++が糞だと言っているのであって、Cがいいと言っているわけではない。
そして、俺が初心者に勧めるのはLL言語だ。(Ruby/Python/JavaScript/(PHP))
これらにはインタプリタ環境がある。それだけで初心者には全然違う。

それ以前に、型等の恩恵を受けたいのならC#の方が断然良い。
というか、後発言語はC言語の駄目な点を改良してきているのだから当然いろいろ優れている。
C++もこれに含まれる。だからC++も『正しく使えば』いい言語だ。
当たり前だがほぼ上位互換な訳でね。



ああ、それなら、以下を付け加えておこう。
5. C以外の環境がない
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/09/29(土) 19:48:34.77:PPHj/b7C0
#if 0
って今となっては不要だよね。
なぜならフレームワークを適当に設定することで開発用と製品用のコードを分離できるようになってるから
VCSでブランチ切ってもいいし。
デフォルトの名無しさん (ワッチョイ d74f-q1nr) [sage] 2018/09/29(土) 20:04:11.39:oiqQJDSj0

ttp://https://stackoverflow.com/questions/3630601/why-use-if-0-for-block-commenting-out/3631513
要するにブロックコメントをブロックでコメントアウトするのに便利、だそうな。
ルールでなら // に統一しろ、とか言われる所だな。

(VCSというか)今はGit全盛だが、勿論それらもなかった頃からCは全面的に使われていたので、
今となっては古い(原始的)と思える機能も沢山ある。
これは古い言語の宿命だからある程度致し方ない。
コーディングルールでも「あれは白黒ディスプレイの為の物」と言われているものあるだろ。
デフォルトの名無しさん (ワッチョイ bfd5-E/Y9) [sage] 2018/09/29(土) 22:15:37.87:UH1zl1PU0

ワンチップマイコンだとアセンブラも有力
デフォルトの名無しさん (ワッチョイ 9740-K3KX) [] 2018/09/29(土) 22:38:18.17:gtdSXLh90
forthって組み込み系でもう使ってないの?
デフォルトの名無しさん (ワッチョイ ff81-aemA) [sage] 2018/09/29(土) 22:39:39.91:s2JlOOSC0

使いやすい言語だとは思わないけどな
デフォルトの名無しさん (ワッチョイ 9fb3-JAAg) [sage] 2018/09/29(土) 23:11:41.46:X4waiIaR0

そもそも最近使われてるのを見たことない


処理系が軽いのよ
デフォルトの名無しさん (アウアウカー Saab-L1KE) [sage] 2018/09/29(土) 23:32:32.75:ozlzkqfsa
postscriptは割と使ってるかもな。知らんが。
デフォルトの名無しさん (ワッチョイ 9f12-q1nr) [sage] 2018/09/30(日) 00:28:39.07:YvS5SBel0
今をときめくpythonの大部分がCだろ
便利なimport含めて
デフォルトの名無しさん (ワッチョイ 57d2-qehE) [sage] 2018/09/30(日) 00:51:11.84:QRI6I66L0
最近プログラミングに熱意が持てなくなってきた
だれかたすけて・・・
デフォルトの名無しさん (ワッチョイ d780-eZfo) [sage] 2018/09/30(日) 00:53:49.78:mUWBdCHT0
言語作ろうぜ
あるいはハード作ろうぜ
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/09/30(日) 13:35:46.44:8vGviIsrM
ここのレベルじゃ無理
デフォルトの名無しさん (ワッチョイ bf9f-aemA) [] 2018/09/30(日) 19:56:21.83:KPqVv5wd0
とりあえず昔のC++みたいにC言語へのトランスレーターで作っとけよ。
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/09/30(日) 20:08:07.13:pfgCoU5B0
昔々、とあるマクロ言語を開発してた頃はyacc/lex(bison/flex)を使ってたんだが、今どきもこういうコンパイラコンパイラを使ったりするんだろうか?
デフォルトの名無しさん (ワッチョイ 1f9e-aemA) [sage] 2018/09/30(日) 20:08:42.93:PasHsNHY0

ForthってMINDのベースって事くらいしか知らない
デフォルトの名無しさん (ワッチョイ 9740-K3KX) [] 2018/09/30(日) 20:25:52.96:CSkWhxVk0
sedとかで十分なことでもgoでパーサ使う人はいるな
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [] 2018/09/30(日) 21:41:15.10:ZDEBOTA70
質問です。
ソースが公開されてないライブラリを使用していまして
その中に特殊なファイルを読み込む関数があります。
事情があってその特殊なファイルを暗号化して保存したいのですが
暗号化してしまうとそのライブラリの関数から直接読み込めません。
暗号を解除する関数を通してそれが一時ファイルを吐けば可能ですが
大量にあるので出来ればもっと良い方法があればそれを採用したいと思っています。
例えば暗号解除後そのままメモリをファイルの様に扱う等は出来ないでしょうか?
よろしくおねがいします。
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/09/30(日) 21:50:14.42:pfgCoU5B0

OSが分かんないけどtmpfsとか駄目なの?
デフォルトの名無しさん (アウアウカー Saab-L1KE) [sage] 2018/09/30(日) 22:13:05.28:vpsmo7Y3a
read/writeを包んじゃうとか。LD_PRELOAD的な。
実行中のメモリが読めるならなんでもありという気もするが
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/09/30(日) 22:17:19.98:ZDEBOTA70

さっそくありがとうございます!OSはWindowsです。
方法はありそうですね?
教えてもらったキーワードで自分でも少し調べてみます!
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/09/30(日) 22:21:51.99:6gTyS6vx0
そのライブラリの特殊なファイルを読み込む関数のインターフェースはファイル名を求めているのだろうか?
それともファイルへのハンドルを求めているのだろうか?

前者と仮定してうまく凌ぐ方法はあんのかな? 名前付きマッピングオブジェクトかなんか?
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/09/30(日) 22:25:01.08:ZDEBOTA70

ありがとうございます。ファイル名です。
OSはWin10です。
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/09/30(日) 22:27:41.29:ZDEBOTA70
tmpfsはWinだと使えないのですね?残念です。これはまさに理想的だったので。
LD_PRELOADは関数を上書きできるのですね。こちら更に調べてみます。
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 00:45:26.18:0BEK1cUt0
どれもWindowsじゃ無理っぽいですね… tmpfsが使えれば一番よかったんですが。
デフォルトの名無しさん (アウアウオー Sadf-Kj1O) [sage] 2018/10/01(月) 03:15:04.29:p5nbtFpra
FILE*で文字を直接参照するのと一旦文字の配列にコピーして参照するのとでは速度差はありますか?
デフォルトの名無しさん (ワッチョイ ff80-LozN) [sage] 2018/10/01(月) 04:00:25.04:2PPz6CoJ0
コピーするのに、メモリ・時間を使うから、

コピーしない方が速い
デフォルトの名無しさん (ワッチョイ 9f02-aemA) [sage] 2018/10/01(月) 05:28:57.52:qsdLJDx40

コピーせずに直接参照ってどうやるの?
デフォルトの名無しさん (ワッチョイ d7b3-uZyL) [sage] 2018/10/01(月) 05:37:04.66:kFV2gm8E0

WindowsでもRAMDiskは作れる(そういうツールがある)けど、エレガントな方法はファイル系のAPIをHookするって手もあるかな?
デフォルトの名無しさん (ワッチョイ 7f23-aemA) [sage] 2018/10/01(月) 09:06:42.48:Qvezncj/0

これなんてエディタ? 秀丸?
デフォルトの名無しさん (ワッチョイ 778a-acSC) [sage] 2018/10/01(月) 09:25:37.38:bI30HRk50
Spyderだろ
デフォルトの名無しさん (ワッチョイ ff80-LozN) [sage] 2018/10/01(月) 09:27:43.52:2PPz6CoJ0
メモリファイルは無いの?
デフォルトの名無しさん (アークセー Sx4b-uZyL) [sage] 2018/10/01(月) 09:33:21.48:UNHR2HPsx
メモリマップトファイルが使えれば良いんだけど、バイナリ提供内部でファイル名で直接CreateFileしちゃってるなら難しいんじゃないかな?
俺が知らないだけでうまい方法があるかもだけど。
デフォルトの名無しさん (ワッチョイ bfd5-E/Y9) [sage] 2018/10/01(月) 09:51:55.51:7/sdPVVo0

ちなみにどんなファイルを読むライブラリなの?
比較的単純なら自分で書き直す方が早いんじゃね?と思ったり。
sqlite みたいなのになってくると手に負えなそうだけど。
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/10/01(月) 10:05:04.00:5qQ+3kFva
暗号化したボリュームに書き込みたいとかいう話ではないんだよな
デフォルトの名無しさん (ワッチョイ 9f02-aemA) [sage] 2018/10/01(月) 12:02:16.95:qsdLJDx40
ファイルマッピングだって、結局はディスク上のファイルイメージをメモリにキャッシュするだけだぞ
ライトバックキャッシュなので「書き戻せ」というコマンドを自分では書かないから
何か特殊なもののように誤解されやすいが、
ハード的にCSやWEがチャネルコマンドに変換されるとかそういうことは一切ない
デフォルトの名無しさん (ワッチョイ 17ea-RKQ0) [sage] 2018/10/01(月) 12:05:58.57:AKKTs5+S0
名前付パイプ渡してうまくいくといいなー ぐらい
デフォルトの名無しさん (アウアウカー Saab-6oYK) [sage] 2018/10/01(月) 12:18:15.13:e2K2pEIVa
パス名でしか読み込めないクソライブラリをありもので解決するならramdiskしかないな
ライブラリを修正できるなら俺だったら読み込み処理をコールバックにする
459 (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 12:26:59.19:0BEK1cUt0
みなさんありがとうございます。むずかしそうですね…
ファイルの仕様も公開されてないので自分で描き直すのもむずかしいです…
理想的な流れとして以下のように出来ればいいのですがむずかしいのですかね…
1 暗号化したファイル読み込み
2 暗号解除
3 メモリに元ファイルとして生成
4 ファイル名を元ファイルを読み込む関数に渡してメモリ上のファイルを読み込む
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 12:28:50.21:0BEK1cUt0

ramdiskですか。ちょっとそちらで調べてみます。ありがとうございます。
デフォルトの名無しさん (ワッチョイ 17ea-RKQ0) [sage] 2018/10/01(月) 12:47:38.04:AKKTs5+S0
ramdisk も中間ファイル書き出してその名前を渡すのとかわらんでしょ
いずれにしろ復号済みのファイルが実体化しちゃってる
デフォルトの名無しさん (アークセー Sx4b-uZyL) [sage] 2018/10/01(月) 12:57:10.39:UNHR2HPsx

難しいというか、技術的な実現方法はいくつか思いつくけど要件がよく分からないのでこれにすべきと言えないだけ。
デフォルトの名無しさん (アウアウカー Saab-6oYK) [sage] 2018/10/01(月) 13:02:33.93:e2K2pEIVa

面倒な手順だけど、fuse+ramfsってのもあるか
windowsにramfsがあるか知らんけど
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/10/01(月) 13:15:50.57:yvyswmJaa

RAMディスクなら速いだろうけど普通のファイルシステムとアクセス方法は同じだから普通にディスクにファイル作っても同じだよ。
そのディスクがSSDならば正にRAMディスクだしな(ちょっと遅いかも知れないが)。

そのファイルは本当にRAMディスクのような高速アクセスできるようなファイルシステム上に作らねばならないものなのか?
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 13:19:01.59:0BEK1cUt0

みなさんありがとうございます。
要件としては元のファイル自体が公開されているライブラリで読み込めてしまうのでそれを防止したいんです。
ようは簡単に読み込めなく出来ればいいだけなんですね。
でも一応メモリ内に復号後のものが実体化されちゃいますがとりあえずこれが出来ればいいかなと。
もう少し自分でも色々調べてみます。
デフォルトの名無しさん (ワッチョイ 17ea-RKQ0) [sage] 2018/10/01(月) 13:21:27.31:AKKTs5+S0

メモリ内だけじゃなくエクスプローラから丸みえだし、ファイルも普通に読み書きできるよ? <ramdisk
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 13:24:04.57:0BEK1cUt0

なんというか単に目に見えるところに作りたくないというだけなんですね。
原理的には読めちゃうんだと思いますがとりあえず素で通常のディスクに書き出すよりは少しはマシかなと。
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 13:25:19.86:0BEK1cUt0

ramdiskはそうなんですね… それだとマズイなあ…
やっぱり見えない形で展開できればいいんですが。
デフォルトの名無しさん (アークセー Sx4b-uZyL) [sage] 2018/10/01(月) 13:30:03.85:UNHR2HPsx
RAMDiskをNTFSでフォーマットして適切なPermission管理すれば良いんじゃね?
デフォルトの名無しさん (ワッチョイ f79f-ZVm4) [sage] 2018/10/01(月) 13:40:12.23:0BEK1cUt0
あとRAMDiskについては使用者のPCに勝手にそういう領域を作っても問題ないのかも気になりました。
アプリが終了すれば常に確実に領域がクリアされ解放されればいいんですが何かのアクシデントで残ってしまわないかとか。
もうちょっと自分でも色々考えてみます。
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/10/01(月) 14:13:49.93:2kmJAioya
隠蔽かつ高揮発?を実現したいということならいろいろありそう。
windowsのfuseって昔あったよな。
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/10/01(月) 14:51:25.74:tOl4q5VhM
Windows詳しいマンはおらんのか
デフォルトの名無しさん (バッミングク MM1b-uZyL) [sage] 2018/10/01(月) 14:56:04.14:n3AkgheKM
だからAPI Hookだって。
デフォルトの名無しさん (ブーイモ MM7b-/SOc) [sage] 2018/10/01(月) 17:27:27.14:sRgrdSMiM
すでに出てるけど、名前付きパイプかファイルマッピングオブジェクトじゃいかんのか
デフォルトの名無しさん (ワッチョイ 9f02-aemA) [sage] 2018/10/01(月) 17:41:52.83:qsdLJDx40
Windowsの話してやってんのに通じないやつが何か文句言ってらあ
デフォルトの名無しさん (アウアウカー Saab-6oYK) [sage] 2018/10/01(月) 19:43:43.06:3ZN7cetya
パス名経由でしか読み込めないんだからありもので対処するならOS経由の手段に限られる
クソライブラリに手を加えられないなら自作するかramdiskで我慢するしかないよ
デフォルトの名無しさん (ブーイモ MM7b-/SOc) [sage] 2018/10/01(月) 20:18:05.62:xRBX1/Y3M
もちろんwindowsの話なんだけどな
デフォルトの名無しさん (ワッチョイ 17b3-RKQ0) [sage] 2018/10/01(月) 20:50:02.06:73T+9RSN0
狙うとすれば ReadFile あたりだろうけど、あまりに根っこ過ぎて
ちゃんと狙い撃ちしたい箇所だけに限定できるのか正直わからんところ
デフォルトの名無しさん (バッミングク MM1b-uZyL) [sage] 2018/10/01(月) 21:43:55.95:n3AkgheKM

狙うならCreateFileだと考えてた。
予めメモリマツプトファイルに復号化しておいてそのハンドル返せば、後はReadFileはHookしなくても煮るなり焼くなり好きにしてもらったら良いと。
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/10/01(月) 21:58:38.38:2kmJAioya
dropboxとか具体的にどういう技術なん?
デフォルトの名無しさん (ワッチョイ d735-aemA) [sage] 2018/10/01(月) 22:54:48.81:2yHgzixG0
APIHookかVFSを自分で実装するかになるんじゃね
前者の方が簡単そうだな
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/10/01(月) 23:58:25.83:zfKNS/F/0
CreateFileMappingにわたすCreateFileのファイルハンドルは
すでにファイルシステムと関連付けられたファイルハンドルになる

メモリならINVALID_HANDLE_VALUEを渡す

ドキュメントにしっかり書いてあるのに
相変わらず低学歴知恵遅れは
口からデマカセの頭悪いテキトーなことばっかりいってるわ。。。
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/10/02(火) 00:01:04.71:R8M7QKDK0
そもそも質問してるヤツはファイルシステムに復号化されたファイルができるのがダメといってるのに
相変わらずだわ。。。
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/10/02(火) 00:19:59.97:9fPP7dMwM
ならばどうする半角よ
貴様の格の違いを見せてやれ
デフォルトの名無しさん (アウアウカー Saab-mYIU) [sage] 2018/10/02(火) 00:24:37.79:69sVZg4Ka
この流れで初書き込みだけどソースが公開されていないで思いどうりに読み込めないのであれば自分で実装したほうがいいんじゃね
バイナリモードで読み込めばいいんじゃないの
デフォルトの名無しさん (ワッチョイ ffe9-WJev) [] 2018/10/02(火) 00:31:01.73:Cp0nvcbE0
また自演か
デフォルトの名無しさん (アウアウカー Saab-mYIU) [sage] 2018/10/02(火) 00:35:23.62:nity8XPfa
499だけどオレが自演って事になってるのか?
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/10/02(火) 00:40:31.83:6wQ+/Q1Ma
dropboxは非同期にrsyncみたいなことしてる感じだな。
ここで求められてるのは同期だね
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/10/02(火) 00:55:56.80:R8M7QKDK0
検討がつかない

そもそも使ってる関数のソースが未公開の前提らしいからな
中でなにやってるかなんかまったく分からんからこういう質問してるんだろうしな
きっとReadFileを呼んでるのだろうという程度のことしか分からない
それは質問してるヤツもその程度は分かってるハズ

そして、そのファイルを読み込む関数のインターフェースもよく分からない
ファイルハンドルを渡すのかファイルパス渡すとかも分からない

情報が一切ないから検討しようがないといいたいが
両方とも検討した結果、簡単ないい方法が思いつかない
別プロセスにしてCONIN$使うとかインチキくさい方法ぐらいしかパッと思いつかなかった

でな、この要件に至るまでの根本的な部分について知りたい
その暗号化したファイルを今までどうやって出力してたかという部分になる
読み込みはその操作と逆の操作をすればいいハズだからな

もし暗号化して出力するときに、平文のファイルを一時的にテンポラリに出力してから暗号化してるなら
入力するときに平文のファイルを一時的にテンポラリに出力するのは許容範囲になると言い張れれば
コレで解決する

コレでイケルハズ
デフォルトの名無しさん (アウアウエー Sadf-L1KE) [sage] 2018/10/02(火) 01:03:57.23:6wQ+/Q1Ma
そうじゃなくて、生データを隠したいんじゃないか?
459 (ワッチョイ f79f-ZVm4) [sage] 2018/10/02(火) 02:49:53.61:qS1Sk5MG0
みなさん色々と案をありがとうございます。
あれから自分で調べたり考えたりしてたんですが
どうにかファイルの構造を知る事が出来そうで
中身を自分で書き換える(復号化ロジック込みの読み込み関数を書く)事にしました。
非常にお騒がせしてしまいまして申し訳ございませんでした!
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/10/02(火) 04:36:17.92:yoF3UpeG0
Cのテスト関係のツールでおすすめとかありますか?
業務ではなく個人の趣味としてのプログラミングなので,できれば無償・オープンソースなのがいいです。
ttp://https://en.wikipedia.org/wiki/List_of_unit_testing_frameworks#C
ここを見ると,やはりCに関しても単体テストが最適なようですが…
デフォルトの名無しさん (ワッチョイ ffe9-WJev) [] 2018/10/02(火) 04:42:42.21:Cp0nvcbE0
本当に自演が大好きなんだな
デフォルトの名無しさん (ワッチョイ 5764-u1F+) [sage] 2018/10/02(火) 06:50:29.85:yoF3UpeG0
? え,もしかして俺に対して?
そうだとしたら まったくの言い掛かりなんだけど……。
純粋に,単体テストのおすすめを訊きたいだけ。
デフォルトの名無しさん (アウアウウー Sadb-6F7C) [sage] 2018/10/02(火) 11:07:45.33:Yfg2/nZYa

世の中のすべてが自演に見えちゃう病気の人かも知れないから、スルーしておけばいいんじゃない?
デフォルトの名無しさん (ワッチョイ 9747-mzb1) [sage] 2018/10/02(火) 11:08:35.53:EEmEj/et0
まーた自演か
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/10/02(火) 12:14:34.37:RjhRAQY1a
まーた自演か
デフォルトの名無しさん (ワッチョイ 9702-aemA) [sage] 2018/10/02(火) 13:22:40.96:kk/2dA0Y0
「自演じゃないもん」なんて弁明しても証明できないところで相手すんなよ
無駄なことをする姿がバカっぽいぞ
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/10/02(火) 13:39:01.10:RjhRAQY1a
自演じゃないもん
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/10/02(火) 19:19:05.31:Fj/XybmQM
ウィザードブックで勉強したって方いますか?
Cのレベル上げにも役立つかしら・・・
デフォルトの名無しさん (ワッチョイ 5780-q1nr) [] 2018/10/02(火) 20:40:47.26:R8M7QKDK0
ココまでオレのジエン
デフォルトの名無しさん (アウアウカー Saab-XaUO) [] 2018/10/02(火) 20:51:11.45:hjXu6C7/a

ウィザードブックってなに?
デフォルトの名無しさん (ワッチョイ 9f12-q1nr) [sage] 2018/10/02(火) 20:53:08.03:pF626ax10
魔法使いがevalとapplyの球もってる奴じゃね
デフォルトの名無しさん (ワイモマー MMbf-sO/y) [sage] 2018/10/02(火) 22:09:38.52:Fj/XybmQM
愛称違ったっけ?
『計算機プログラムの構造と解釈』です


です
λのやつ
◆QZaw55cn4c (ワッチョイ 9f60-+gc+) [sage] 2018/10/02(火) 22:37:55.33:WWljJiuT0

一般の人間が翻訳に参入しているようですね
デフォルトの名無しさん (ワッチョイ d74f-q1nr) [sage] 2018/10/03(水) 00:45:37.81:+GJzyh+A0

愛称はSICPな。
ttp://sicpvn.sdf.org/smug.jpg

つか、全文訳されて公開されてるのな。
ttp://https://github.com/minghai/sicp-pdf/

詳細は以下。
ttp://https://qiita.com/kaz-yos/items/d1ecd4bfe9989c290e99
ttp://https://cpplover.blogspot.com/2016/05/mitsicp.html

なお、俺は読んだこと無い。
デフォルトの名無しさん (ワッチョイ ffe9-WJev) [sage] 2018/10/03(水) 04:12:13.38:zPlOwhsg0
またトリップ付けないで書き込みしたの?
荒らしはもうやめておいた方が良いと思う
デフォルトの名無しさん (ワッチョイ 9f60-+gc+) [sage] 2018/10/03(水) 06:56:42.02:R1dsfyjz0

>またトリップ付けないで書き込みしたの?
>荒らしはもうやめておいた方が良いと思う

トリップつけないで書き込みするとどうして荒らしになるのですか?
というか、ほとんどの人がトリップをつけていないので、5ch は荒らしだらけ、ということですか?
デフォルトの名無しさん (ワッチョイ 9702-aemA) [sage] 2018/10/03(水) 07:02:45.12:IEc6BJqm0
アホは相手すんな
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 10:05:15.64:DxqDA2/Ip
ttps://i.imgur.com/BsiX5iK.jpg

添削お願いします。
デフォルトの名無しさん (ワッチョイ bad5-6J+Z) [sage] 2018/10/05(金) 10:17:32.97:6zSKEd8l0

minute と second は while の中のスコープで宣言するといい。
あと second を printf する時、お前のやりたいことは多分 %02d でできる。
0詰め2桁表示ね。
デフォルトの名無しさん (ブーイモ MMed-m6vJ) [sage] 2018/10/05(金) 10:21:58.92:3s3m6VbBM
sleepは1秒待ってくれるとして、
前後の処理がどうしても正確に0秒でできるわけではないので誤差が溜まっていく。
定期的にシステムの時刻を見て秒の変わり目を検出するほうが正確。
デフォルトの名無しさん (ワッチョイ bad5-6J+Z) [sage] 2018/10/05(金) 10:26:30.21:6zSKEd8l0

これはこうすべきってことでないけど、画面を消す clear、これが何をやってるか調べると面白いかもよ。
とりあえず
clear > log
とかやって log に何が書かれてるか見てみるといい。
次に
cat log
とやると何が起こるか確かめてみるといい。
これがわかると画面を消すのに clear なんて外部コマンドを使わなくてもよくなる。
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/05(金) 10:44:56.64:uhmiVRnQa

whileとelseは直後に空白あける。
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 11:16:24.26:DxqDA2/Ip
ttps://i.imgur.com/ldQVwUT.jpg
↑ソースコード

ttps://i.imgur.com/eCYNPsi.jpg
↑実行結果

となりました。
「set number」と「syntax on」を初期設定したいのですが、どうすればいいですか?
デフォルトの名無しさん (ワッチョイ 32e7-+YFb) [sage] 2018/10/05(金) 11:16:46.89:FRcGP58U0
free run counter
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 11:19:04.80:DxqDA2/Ip
あと、iPhoneのタイマーと比べた結果カウントが遅くなっていたことがわかりました。これは前後の関数を実行する際にノータイムでは出来ないことが原因だと考えられます。
デフォルトの名無しさん (ワッチョイ bad5-6J+Z) [sage] 2018/10/05(金) 11:20:50.09:6zSKEd8l0

ちょっとまて、 を試そうとしてる雰囲気だけど、clear > log とか cat log はソースコードに埋めるんじゃなく、コマンドラインとして叩くんだよ。
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 11:44:12.58:DxqDA2/Ip
ttps://i.imgur.com/5usTieQ.jpg

流れが速くて打てません。
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 11:54:29.41:DxqDA2/Ip
while の中でminute,secondを宣言したら回るたびに宣言する事になるので、なんかダメだと思いました。

あと、ちゃんとしたタイマーを作るにはどうすればいいのか知りたいです。
デフォルトの名無しさん (アウアウカー Sa0a-syNg) [sage] 2018/10/05(金) 11:56:56.95:aS2keCHZa
画面が流れるんでなくて、部分的に書き換えたい感じ?
cursesを使うのじゃ
デフォルトの名無しさん (ブーイモ MMed-m6vJ) [sage] 2018/10/05(金) 12:03:40.55:3s3m6VbBM
教え方の下手くそな教えたがりばかりで
あげくにcursesまで初心者に吹き込んで質問者大混乱
デフォルトの名無しさん (アウアウカー Sa11-tGr2) [sage] 2018/10/05(金) 12:22:47.81:NVTQRcnQa

なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
デフォルトの名無しさん (スップ Sd00-t0aP) [] 2018/10/05(金) 12:23:53.35:G8OY4AG7d
そこは教え方の上手なあなたが教えてあげれば良い事だな
デフォルトの名無しさん (ワッチョイ 8ad7-vBoO) [sage] 2018/10/05(金) 12:50:10.63:cQzHZ22n0

歴史に残る名言だなw
デフォルトの名無しさん (アウアウカー Sa0a-iYeS) [] 2018/10/05(金) 12:50:15.78:qaFHFmCDa

それ、もういいですから。
デフォルトの名無しさん (ワッチョイ 8e80-QLg3) [sage] 2018/10/05(金) 13:01:08.97:vpbu8eze0
clear > log
cat log

Linux の基本コマンドも知らないような奴が、C をやるな!
10年勉強してからやれ
デフォルトの名無しさん (ワッチョイ bad5-6J+Z) [sage] 2018/10/05(金) 13:01:39.72:6zSKEd8l0

で言ってるのは の実行とは別の話。
画面を消す方法の正体を調べる手順だから、ヒマな時にやればいい。


宣言はコンパイル時に解釈されるもので、実行時に「宣言という動作」を行っているわけじゃない。
だから実行時にかかるコストは無いから、ループの中に書いてもいい。
C は変数が見える範囲(スコープ)が { } の中になってる。
minute と second は while で回してる { } の中でしか使ってなく、かつ表示のための一時的な変数だから、それを必要とする範囲内だけで見えるようにすると分かりやすくなる。
変数のスコープは極力狭くなるように書くといいよ。
分かりやすさの点でもいいし、メモリ(スタック)の消費量も少なくなる。

正確なタイマーを作るならインターバルタイマーで調べてみるといいけど、まだそれを使えるレベルじゃないと思う。


curses ってなに?
デフォルトの名無しさん (アウアウカー Sa0a-iYeS) [] 2018/10/05(金) 13:03:13.60:qaFHFmCDa

1秒ごとに setitimer() とか使って割り込み掛かればいいんだけどね、普通のOSだとあまり正確にではないかも知れない。しかしただsleepするよりは正確だと思う。

割り込み使わないやり方で今と似ているけどましなやり方は次の処理開始時間までより正確に sleep することだ。
これは gettimeofday() でμ秒までの時刻を取得して秒が変わるまで何μ秒なのか計算して usleep() で sleep させればできる。
デフォルトの名無しさん (ワッチョイ bad5-6J+Z) [sage] 2018/10/05(金) 13:11:04.98:6zSKEd8l0
curses ってライブラリか。
面白そうだな。
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 13:31:56.77:DxqDA2/Ip

変数の宣言はコンパイル時に解釈されているのですね。わかりました。

「set number」と「syntax on」を初期設定にするにはどうすればいいですか?
デフォルトの名無しさん (ササクッテロレ Sp10-QFHg) [sage] 2018/10/05(金) 13:33:35.60:DxqDA2/Ip
あと、インターバルタイマーも調べて起きます。
デフォルトの名無しさん (ワッチョイ 2abe-selW) [sage] 2018/10/05(金) 16:55:26.05:NK5dBb8n0

printf '%s\n%s\n' 'set number' 'syntax on' >> ~/.vimrc
デフォルトの名無しさん (ワッチョイ 2abe-selW) [sage] 2018/10/05(金) 16:56:30.81:NK5dBb8n0
ていうかエディタの名前くらい書け。
まあset numberという設定名のエディタはVimくらいしか思い付かんが。
デフォルトの名無しさん (ワイモマー MM5a-QNrK) [sage] 2018/10/06(土) 10:59:41.46:YTpMAVXmM
そこはggrksだろ

なに遊ばれとんねん
デフォルトの名無しさん (ワッチョイ 3fb3-Qng4) [sage] 2018/10/08(月) 11:16:41.41:5icYsRLJ0
H8 (3694) と秋月キャラLCD(SC1602) のI/F 関数です。

//--------------------------------------------------------------------
#include<3694.h> // CPU のレジスター定義、その他関数のプロトタイプ

struct DATA_BUS{
unsigned char NOTUSE:4;
IO.PDR8.BIT.B7;
IO.PDR8.BIT.B6;
IO.PDR8.BIT.B5;
IO.PDR8.BIT.B4;
}; // IO.PDR8.BIT.B3 は不使用

#define LCD_RS IO.PDR8.BIT.B2 // P82を LCD RSに定義
#define LCD_RW IO.PDR8.BIT.B1 // P81を LCD R/Wに定義
#define LCD_E IO.PDR8.BIT.B0 // P80を LCD Eに定義
#define LCD_DB DATA_BUS // P83〜P87 のみをLCD D4〜D7 に定義したい
//--------------------------------------------------------------------
LCD_DB に構造体の入れ子(DATA_BUS) を定義しています。この書き方で動作しますか。この関数の作者はLCD_DB にunsigned char 型で下位4ビットのみ有効なchar 型を代入していました。
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 13:21:40.69:i8/5B6xca
関数がないじゃん
デフォルトの名無しさん (ワッチョイ 965b-zn+7) [sage] 2018/10/08(月) 13:57:42.90:wqzMNkqt0
そもそもコンパイルできなかったのでは?
構造体のメンバにB4〜B7みたいな定義済みの定数は書けないよ。
デフォルトの名無しさん (ワッチョイ b064-selW) [sage] 2018/10/08(月) 14:22:18.67:NcWFD+EU0
Cってネットワーク系のコマンド作るのに向いてる?
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 14:26:06.72:i8/5B6xca
ネットワーク系のコマンドというのが意味不明だが、socketインターフェースはある。
向いてるかといえば向いてないが、そういう低レイヤの話としては言語は何を使っても大して変わらん様な気はする。
デフォルトの名無しさん (アウアウウー Sab5-Gru0) [] 2018/10/08(月) 14:31:56.89:meeyxWTYa
REST APIなら libcurl で楽々よ
デフォルトの名無しさん (ワッチョイ fa9f-v2gR) [sage] 2018/10/08(月) 14:51:03.67:FGHe46tu0
ビットコのbot殆どがPythonやNode.jsばっかだけど
libcurl使えばスクリプト言語並みに簡単に使えるよね
デフォルトの名無しさん (ワッチョイ b064-selW) [sage] 2018/10/08(月) 15:10:37.99:NcWFD+EU0
なるほどソケットっていうのもあるのか。
無知なもので「ネットワークコマンド」と言えばwgetやらcurlやらのTCPクライアントだけを指すと思ってたw
curlってコマンドだけじゃなくてlibcurlも提供してくれてるんだね。
だったらpure CでもTCPクライアントが作れそう。
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 15:53:56.39:i8/5B6xca
言葉の話だけどcurlは基本的にはHTTPクライアントだ。TCPの上に乗ってる。
TCPクライアントはtelnetとかncだな。ncはUDPも行ける。
TCPも基本的には難しくないが、異常系を考え出すときりがない。
デフォルトの名無しさん (ワッチョイ d881-t36n) [sage] 2018/10/08(月) 16:51:30.03:wTnfR6Jf0
大昔ソケットレベルから自前でHTTPクライアント作ったことある
TCPプロトコルを学ぶ良い勉強になるよ
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 16:56:21.14:SHTmPUE+0
相変わらず低学歴知恵遅れは頭悪いこといってるわ
ソケット通信でTCPプロトコルとか

オマエがソケット通信でやりとりしてんのはHTTP

ホントななんでココまで頭悪いのしかいないのか不思議
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:00:43.05:SHTmPUE+0
トランスファープロトコルにTCP/IP使ってるといっても
きっとこのスレの低学歴知恵遅れは意味が分からない

smtpもftpもほとんどが普通にtcp/ipだからな

いまどきのnetbiosも普通にtcp/ipだからな
昔はトランスファープロトコルにnetbeuiつかってた
で、今ではnetbios over tcp/ipで
nbtとかなんとかいってる
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 17:32:32.71:i8/5B6xca

知らんテクニカルタームは使うときに確認しろよ
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:34:14.12:SHTmPUE+0
また低学歴知恵遅れが意味不明ないちゃんもんとけてるし
先にいっとくけどな
とてつもなく頭悪いこといってんのオマエだからな

まずその自覚がない
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:35:52.31:SHTmPUE+0
pop3もtcp/ip
sshもtcp/ip
httpsもtcp/ip

きっとな低学歴知恵遅れには
なにをいってるのいかが分からないとは思うわ
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:37:36.24:SHTmPUE+0
ホントな低学歴知恵遅れは
頭悪いことを自信満々でいうから困るわ
デフォルトの名無しさん (ブーイモ MM5e-ebK2) [sage] 2018/10/08(月) 17:44:32.09:BtXxUchaM
基本情報どころかITパスポート程度の知識でドヤってるのか
低学歴知遅れ君は
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:47:16.60:SHTmPUE+0
それにすら到達してない低学歴知恵遅れが
ドヤってるスレがこの板だからな

マジで低学歴知恵遅れはこの板から排除したほうがいい
有害
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 17:48:30.52:i8/5B6xca
じゃあ「トランスファープロコトル」ってなんだか説明してくれよ…
なんだよ「ソケット通信でHTTP」って。
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:50:22.69:SHTmPUE+0
HTTPというのは
ハイパーテキストトランスファー プ ロ ト コ ル
だからな

ソケット通信(トランスファープロトコル意識する必要ない)で
HTTPの内容してるだけだ

わかった?
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:51:32.47:SHTmPUE+0
ソケット通信でHTTPの内容をヤリトリしてるのすら分かってないワケだからな
ここまで頭悪いと話にならない
デフォルトの名無しさん (ブーイモ MM5e-ebK2) [sage] 2018/10/08(月) 17:51:37.49:BtXxUchaM
低学歴知遅れ君ってプロトコルの意味を理解してなさそう
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:52:10.92:SHTmPUE+0
で、低学歴知恵遅れの負けず嫌いは半端ないからな
デフォルトの名無しさん (ワッチョイ d980-A6IM) [] 2018/10/08(月) 17:52:42.31:SHTmPUE+0
これ以上語るつもりはない
デフォルトの名無しさん (ワッチョイ 15c7-vBoO) [sage] 2018/10/08(月) 17:55:15.29:o/CKA6Eq0
昨日読んだTCPの本がよっぽど気に入ったんだね
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 17:59:44.79:i8/5B6xca
だからなんだよ「トランスファープロトコル」って
デフォルトの名無しさん (ワッチョイ d881-t36n) [sage] 2018/10/08(月) 18:24:47.89:wTnfR6Jf0
TCP Transmission Control Protocol
IP   Internet Protocol

トランスポート層 TCP, UDP, DCCP, SCTP, IL, RUDP

似たような言葉はあるが、その表現は見つからないな
並行宇宙のどこかで使っているかもしれないが
ここではなさそうだ
デフォルトの名無しさん (ワッチョイ b064-selW) [sage] 2018/10/08(月) 18:25:27.11:NcWFD+EU0
あー。TCPというのはHTTPよりもう少し下層に位置する概念ってことかな?(合ってるか不安)
俺が作りたいなぁと思ったのは
$ xxx 'example.com'
とやるとブラウザでexample.comにアクセスして「ページのソースを表示する」機能を使ったときのような出力を返すコマンド。
これはTCPクライアントじゃなくてHTTPクライアントか。
デフォルトの名無しさん (ワッチョイ d881-t36n) [sage] 2018/10/08(月) 18:27:46.37:wTnfR6Jf0

そう
普通はHTTPプロトコルのGETメソッド使う
POSTでも良いが、設定が多少複雑になる
デフォルトの名無しさん (ワッチョイ b7b3-Ww/X) [sage] 2018/10/08(月) 18:29:18.08:lYyho1IC0
「トランスファープロトコル」は星の数ほどある「〜転送プロトコル」の用語として使われるけど、トランスファープロトコル単体で使用されてるのは聞いたことないね。
きっとトランスポートプロトコルの間違い。
デフォルトの名無しさん (ワッチョイ d881-t36n) [sage] 2018/10/08(月) 18:29:27.24:wTnfR6Jf0
あ、下層というよりもアプリケーション層ですね
デフォルトの名無しさん (アウアウエー Sa6a-syNg) [sage] 2018/10/08(月) 18:42:58.85:i8/5B6xca

まあGETするだけだったらそれこそTCPだけでもいい。
勉強としては、HTTPサーバにtelnetしてGETコマンド(と、いくつかのヘッダ)を打ち込んでみると、イメージがつかめるのではないかと。
デフォルトの名無しさん (ワイモマー MM5a-QNrK) [sage] 2018/10/08(月) 19:28:25.64:ksVOiCMkM
半角久しぶりに来てんじゃん
やっぱお前が釣らなきゃ盛り上がらんな
デフォルトの名無しさん (ワッチョイ aab3-GL8C) [sage] 2018/10/08(月) 19:39:09.30:sIA/07pT0
そろそろ知ったかマウント君はいなくなったかな?
デフォルトの名無しさん (ササクッテロ Sp88-QFHg) [sage] 2018/10/08(月) 19:44:22.79:VRFV8oUEp
クソガキ多いねw
デフォルトの名無しさん (ワッチョイ 7f35-vBoO) [sage] 2018/10/08(月) 19:45:29.27:o48XySPi0
勉強したいならCで
スティーブンス本で検索すれば、役に立つ書籍があるよ
使いたいだけならpostmanとかcurlでえんじゃね?
デフォルトの名無しさん (ブーイモ MMfd-c4eZ) [sage] 2018/10/08(月) 19:58:16.19:/43gNJgrM
ファーwww
デフォルトの名無しさん (ワッチョイ fa9f-v2gR) [sage] 2018/10/08(月) 20:47:31.58:FGHe46tu0
半角くんとかvoidくんとかこのスレには個性的な人が多いねw
デフォルトの名無しさん (ワッチョイ 27cc-smg0) [] 2018/10/13(土) 20:15:38.78:mLt7ea1s0
すみません、C言語出テキストファイルの特定行を書き換えたいのですが
全て配列に読み込む→変更する→全て書き戻す
という方向しかないでしょうか。

変更前 01.txt
a=1
b=1
c=1

変更後 01.txt
a=1
b=0
c=1

こういった変更を行いたいです。
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/13(土) 20:23:20.71:L3Dj2/gz0
標準入力から1行ずつひたすら読み込む
特定行以外をひたすら同じ内容を標準出力に出力する
特定行だけ変更内容を標準出力に出力する

できた
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/13(土) 20:36:09.45:L3Dj2/gz0
aho.sh
----
#!/bin/bash
aho < 01.txt > 01_tmp.txt
mv -f 01_tmp.txt 01.txt

引数でファイル名を指定するどうでもいいことがどうしてもしたい場合は
一旦、プログラムでテンポラリファイルに書きだして
プログラムで最後にmvする必要がある
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/13(土) 20:51:29.26:L3Dj2/gz0
ttp://https://ideone.com/CYlw3P
あとはテキトーにやりなさい
デフォルトの名無しさん (ワッチョイ dfb3-EA7j) [sage] 2018/10/13(土) 21:16:47.20:f9khLXsZ0

その例みたいにサイズが変わらないなら直接書き換えることは可能
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/13(土) 21:39:37.11:bu3lDLSN0

そういうのはC言語ではやらないのが正解な。
どうせ逆ギレされると思うが、そう言われたことだけでも覚えておけ。
デフォルトの名無しさん (アウアウエー Sa9f-M9VF) [sage] 2018/10/13(土) 22:17:43.48:2jvN7D8ra

voidがねえし
デフォルトの名無しさん (アウアウウー Saeb-zIC7) [sage] 2018/10/13(土) 23:02:07.79:3osNA+cUa

その方向しかない
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/13(土) 23:32:20.23:LnxaR5jgM
「特定行」の定義は?
デフォルトの名無しさん (ワッチョイ bf3a-DKnb) [] 2018/10/13(土) 23:33:28.10:LwGfYqlW0

UNIXならmmap()、WindowsならCreateFileMapping()を使ってファイルの内容をメモリにマップするとか。
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/13(土) 23:34:05.47:L3Dj2/gz0
書いてあることをすべてCでやりたいなら
コレでいける
ぜんぶメモリにいれる必要はない

@ 入力ファイル(01.txt)をリードオンリーでオープン
A テンポラリファイル(出力ファイル)をmktemp()で取得
B Aで取得した出力ファイルをライトオンリーでオープン
C 1行ずつ読み込んで1行ずつ書きこみ(
D 入力ファイルと出力ファイルをクローズ
E 入力ファイルをremove()で削除
F 出力ファイルをrename()で入力ファイルに移動

ものすごい大きいファイルが入力ファイルになった場合対応できない
デフォルトの名無しさん (ワッチョイ 0761-zIC7) [sage] 2018/10/14(日) 01:05:48.11:fk9HLJgw0
オフセットズレが発生するファイルの更新はファイルの全面書き出し以外に方法はない
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/14(日) 01:17:59.64:Xia0NB2F0
ファイル後ろの方だと大きなファイルでも部分的な書き直しで済むんだよね
588 (ワッチョイ 27cc-smg0) [] 2018/10/14(日) 02:24:40.11:bBeuqmk90
皆さん回答ありがとうございました。
やはり処理的にはすべて触らないとダメそうですね。
さんの例はfopenとか必要ないのですか。
デフォルトの名無しさん (ワッチョイ dfd2-7vHE) [] 2018/10/14(日) 02:31:42.91:VGDv0f/D0
なんとなくsedで済む話な気がする
デフォルトの名無しさん (ブーイモ MM0b-ZPHe) [sage] 2018/10/14(日) 02:52:55.98:xvapfCASM

ファイル入出力ストリームなら必要
あの例は標準入出力を指定してるだけ

すべて触る必要があるかはデータ構造次第
更新するデータ域をブロック分割、
ブロックマップをメタ管理とかは
バイナリなら一般的な手法
テキストだとスペースパディングで
ブロックやエントリ管理できそうだが
そんなことやってる奴は見たことない
デフォルトの名無しさん (ワッチョイ bf9f-4Hut) [sage] 2018/10/14(日) 03:26:16.87:rKkXAekW0

stdin から読むようになってるからシェルのコマンドラインからならリダイレクトで読ませれば良いだけだよ。
デフォルトの名無しさん (ワッチョイ a77e-4Hut) [sage] 2018/10/14(日) 06:21:09.87:1QMkRc1k0
cat 01.txt | sed s/b=1/b=0/
◆QZaw55cn4c (ワッチョイ df60-vJCm) [sage] 2018/10/14(日) 09:20:22.59:1uKE5eLu0

スタートアップから渡される argc, argv を「使わない」のだから void なしが妥当なのでは?
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/14(日) 09:33:04.94:p/Li638e0

× なんとなく
○ ほぼ確実に

「Cで」「Cで」「Cで」、初心者はCしか出来ないからそれしか考えられない。(選択肢がない)
初心者あるあるだけども。
実際これ、Cで処理されてCバイナリを引き継がされても大迷惑だし。


マジな話、上司が居るのなら上司に聞けって。これ、Cでやったら大迷惑な話だし。
聞くのが迷惑だと思っているのなら、この件については聞かない(報告しない)ほうが迷惑だ。
上司が居なくてど初心者なら、この際にスクリプト言語を覚えろ。
デフォルトの名無しさん (ワッチョイ a77e-4Hut) [sage] 2018/10/14(日) 09:38:03.86:1QMkRc1k0

その論法でいうならvoidなし&返却値なしだな
純K&Rスタイル

main()
{
/* do something */
exit(0);
}
デフォルトの名無しさん (ワッチョイ a77e-4Hut) [sage] 2018/10/14(日) 09:39:21.07:1QMkRc1k0
例の半角野郎がまた湧いたか、しつけーな
何が上司だ、ここはム板だぼけ
デフォルトの名無しさん (ワッチョイ df12-gma9) [sage] 2018/10/14(日) 10:56:40.88:8TmCYtNe0

引数 void って初めて見たぞ。文法的にありなのかこれ?
デフォルトの名無しさん (ブーイモ MM0b-SHtH) [sage] 2018/10/14(日) 10:58:50.59:br2DRGrhM
未だ許されないvoidおじ
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/14(日) 12:19:08.18:vwPmx6lGM
特定行の書き換えですが
・bの値を反転させたい(0なら1、1なら0)
・b=の行は複数出現する可能性がある()
・複数出現した場合は一番最後に出現した行の値を反転の対象にしたい
・書き換え後はb=の行は1行だけにしたい
・書き換え後はできれば
a=...
b=...
c=...
な感じでソートしててほしい

これはC言語で出来ますか?
どうやったらいいでしょうか?
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/14(日) 13:29:01.06:p/Li638e0

「出来る/出来ない」なら、そりゃC言語で「出来ない」って事ははほぼ全ての事例で無いよ。
どうやったらいいか、なら、その場合は俺ならExcel使うね。規模的に無理ならシェルスクリプトを使う。
何でもCでやればいいわけではない。

そのお題を実際にCでやる事なんて無いから、練習用なら意味無いし、
本番としてそれをCでやる気なら、間違ってるから止めとけ。
デフォルトの名無しさん (ワッチョイ c78a-ScHU) [sage] 2018/10/14(日) 13:32:34.90:oxI7rgHj0
の続きなのか


ソートするなら全て読み出すのが一番楽だよ
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/14(日) 14:42:07.27:Q3eQCyRU0
コードの書き方みたいなこんなもんを上司に聞けとか
よくわからんが、協力会社で入ってるリーダーかなんかか。。。
すげえな、そういった会社の文化をオレは知らないが

そもそもそんなとこが未教育なゴミつれてきたら大問題だからな
必死になるのも分かるわ

で、だれでもすぐ分かってるコマンド書いてドヤ顔して低学歴もいるしな
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/14(日) 14:43:20.19:Q3eQCyRU0
この程度ならCで書いても
普通にCで書く練習になる
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/14(日) 14:46:42.49:vwPmx6lGM
Excelで手作業とかは論外です
シェル芸でもいいです
誰かできませんか?
デフォルトの名無しさん (ワッチョイ bfd5-KnhR) [sage] 2018/10/14(日) 14:48:14.42:b97yHnkE0

どこまで書いたのか、現状のコードを貼ってみなよ
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/14(日) 14:48:35.94:Q3eQCyRU0
sedとsort使えばいい
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/14(日) 15:12:45.83:p/Li638e0

お前以外のみんな出来るっての。

お前がコードクレクレ君だからみんな適当にあしらってる。
お前が努力してる(=コードを試しに書いてみたが動かない)のなら、もう少しましな回答も出るだろうさ。
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/14(日) 16:43:39.96:vwPmx6lGM
ロジックだけでも教えてください
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/14(日) 17:39:13.57:+7qWkF0t0
こんな感じでどうかな
 ・空行はそのまま出力されてしまう
 ・代入文は1行に1文のみで X=n の形式
が前提だけど

awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' a | sort -u
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/14(日) 17:41:50.05:+7qWkF0t0
あ、a はファイルね
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/14(日) 17:46:59.25:+7qWkF0t0
-u はいらんかったな
デフォルトの名無しさん (ワッチョイ 67b3-wEhW) [sage] 2018/10/14(日) 17:52:44.40:El+yY4uS0

tacで逆順出力、sedで初回マッチのみ置換、sortでソート出力
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/14(日) 18:07:48.33:+7qWkF0t0
tac なんてコマンドがあるんだな、サンキュー
sed 使った場合、0と1の交換と、初回マッチ分以外は出力しないようにするの、難しくない?
デフォルトの名無しさん (ワッチョイ 7f80-WnU0) [sage] 2018/10/14(日) 18:31:52.87:hWarSIQ50
Ruby で作った

text = File.read 'data.txt'

ary = [ ]; index = [ ]

text.each_line.with_index do | line, idx | # 各行・添字
line.chomp! # 末尾の改行を削除する
ary.push line # 各行を配列に入れる

# 先頭文字列が、b= なら、添字を配列に入れる
index.push idx if line.start_with? 'b='
end

return if index.empty? # 空配列なら処理なし

first = true # 最初の1回だけ処理する
index.reverse!.each do | num | # 後ろから削除するために、反転する
if first # 最初の1回だけ
first = false

case ary[ num ][ 2 ] # 3文字目
when "0" then ary[ num ][ 2 ] = "1"
when "1" then ary[ num ][ 2 ] = "0"
else # 処理なし
end
else # 2回目以降は削除する
ary.delete_at num
end
end

puts ary
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/15(月) 00:34:33.53:FbFcpKzK0
Rubyもいいけど、こういう小規模な操作にはシェルスクリプトとかが適してる気がする。
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/15(月) 02:17:02.27:Obfj9PeS0
の内容だけど、誰も聞かないのであえて聞くけど
b=以外は何も加工せずに複数あればそのまま出力で良いのか?
その場合、ソートは=の右側の数値順にするのか、文字コード順にするのかか
データによっては、a=、c=、d=の行が多数出力される中でb=の行だけ1行になる
ってことで良いのかな?
デフォルトの名無しさん (ワッチョイ 07e0-SmB1) [sage] 2018/10/15(月) 03:03:29.36:E6pr56BO0
 私たち日本人の、日本国憲法を改正しましょう。
総ム省の、『憲法改正國民投票法』、でググって
みてください。拡散も含め、お願い致します。
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/15(月) 23:43:48.26:KnJWry7m0
 @ [出力A]  a=とc=を抽出(使うコマンド:grep)
 A [出力B]  b=0の1〜末尾-1行を抽出 (使うコマンド:grep|head)
 B [出力C]  b=1の1〜末尾-1行を抽出 (使うコマンド:grep|head)
 C [出力D]  b=0の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
 D [出力E]  b=1の末尾行を抽出し置換 (使うコマンド:grep|tail|sed)
 E [出力F]  [出力B]、[出力E]、[出力C]、[出力D]コンカチネーションしユニークにする (使うコマンド:cat|uniq)
 F 出力結果 [出力A]と[出力F]をコンカチネーションしソート(使うコマンド:cat|sort)

とりあえずコレでいけるハズ
あとはがんばりなさい
デフォルトの名無しさん (ワッチョイ c723-M9VF) [sage] 2018/10/15(月) 23:53:21.52:9a9m7auH0
sedだけでやってみてくれや
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/15(月) 23:59:03.51:KnJWry7m0
だけでやるとはオレは一言もいってない
使うコマンドを限定した覚えはない
612 (ワイモマー MMff-ytAd) [sage] 2018/10/16(火) 00:22:11.79:NB8XYwuTM
ソートはa,b,c...順です
b=以外は重複を許可します(ソート後の出現順は考慮しなくてよい)
(処理例
入力データ
c=0
a=1
b=1
c=1
a=0
b=0
出力データ
a=1
a=0
b=1
c=0
c=1
デフォルトの名無しさん (アウアウエー Sa9f-M9VF) [sage] 2018/10/16(火) 00:40:38.52:xERlP6Woa
チューリングマシンならなんでもできて当たり前なんや
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/16(火) 00:47:20.35:HI3tJEA90
Cのプリプロセッサも計算完備だしな。誰かがcppでフィボナッチ数列出力してたな そういや
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/16(火) 00:55:44.02:gETK/lfa0
こんなんではどうかな
sed -e ":l; N; s/\nb=[01]\n/\n/1; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/16(火) 01:01:42.59:gETK/lfa0
bが1行しかないとうまく行かないな
ちょっと手直し

sed -e ":l; N; /b=.*b=/{;s/\nb=[01]\n/\n/1;}; $p; b l" 01.txt | sed -e "/b=1/{;s/b=1/b=x0/;};/b=0/{;s/b=0/b=x1/;};/b=x/{;s/x//;}"

並び替えはsortでやってください
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/16(火) 01:20:14.73:HI3tJEA90
もはやすごいのかどうかも分からんが すごいw
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/16(火) 01:33:16.00:gETK/lfa0
大したことはしてませんw
前半のスクリプトで最終行以外のb=の行を削除し、
後半のスクリプトで置き換えをしてます
デフォルトの名無しさん (ワッチョイ bfd5-KnhR) [sage] 2018/10/16(火) 07:39:45.98:7taE2kBh0
つかさ、丸投げに答えてやる必要も無いだろ。
ただの一行もコード書いてないだろこいつ。
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/16(火) 07:59:23.00:ips5MdhR0
622じゃだめなんか?
cat <file> | awk -F= '{if($1=="b") b=$2; else print;} END{printf("b=%d\n", xor(b, 1))}' | sort
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/16(火) 09:23:21.39:HrwRMilta
いーんじゃない?
デフォルトの名無しさん (ワッチョイ df7c-4Hut) [sage] 2018/10/16(火) 10:41:54.09:kKW6G61E0

確かにそんな感じしてきてるな
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/16(火) 13:03:31.45:0QUQFWONa
てか、Cのスレで質問者もCでどうやるか聞いてるのに誰もCで答えてないw

ま、Cで書く気が失せる問題ではあるが。
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/16(火) 13:28:42.21:iuFXWAmsM
頭の体操にはなったろ
スレを活性化するためには呼び水って必要なんだと実感
デフォルトの名無しさん (ワッチョイ 078a-oHS3) [sage] 2018/10/16(火) 13:38:03.74:dIjk/xku0
C言語でやるとしたら
b=で始まる行以外は適当な一時ファイルに出力し
b=で始まる行だけはメモリー上に格納しておく
b=行が出現する度に、あたらしい行データでメモリー上を更新する
EOFまで処理したら、一時ファイルとメモリー上のデータをマージする
その際にb=の値を所定の値に置換する
順番は後にソートする前提なので適当で構わない
ソートは外部コマンドでやらせて良いだろうね
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/16(火) 17:27:49.92:5Df0UEAr0

591がCで答えてるだろ
ちょっと小馬鹿にしたような内容だが
小出し小出しで来る質問者には適切だったと
だんだん思えてきてる
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/16(火) 17:35:52.31:HrwRMilta

おお。上の方過ぎて気づかなかった。
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/16(火) 21:08:20.36:iuFXWAmsM
お前らがほどよく食いつきそうな質問考えるのも大変なんだぞ
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/16(火) 21:46:58.32:Fb63Sgww0

死ね
デフォルトの名無しさん (ワッチョイ 7f81-VhFj) [sage] 2018/10/16(火) 22:04:41.56:gETK/lfa0
流石に591はネタとしか思えない
というか、酷すぎだろう
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/16(火) 23:06:58.82:HI3tJEA90
C99時代のhello worldプログラムを考えてみた。

#include <stdio.h>
#include <stdlib.h>

static inline void
print_hello(void)
{
puts("Hello, C!");
}

int
main(void)
{
print_hello();

exit(EXIT_SUCCESS);
}

exit()関数を使ったり、main()関数の中に直に処理を書かないとか色々。
デフォルトの名無しさん (ワッチョイ bf9f-pYQO) [] 2018/10/16(火) 23:31:05.44:ZKPc2SIw0
なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
デフォルトの名無しさん (ワッチョイ bf9f-pYQO) [] 2018/10/16(火) 23:35:18.29:ZKPc2SIw0

あれ?それ、コンパイルすると警告出ないか?main()が何も返してないって。
いや、exit()を理解してくれるコンパイラなら何も出ないかも知れないけどね。
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/16(火) 23:48:35.20:HI3tJEA90

c99 -O2 -Wall -Werror -Wextra hello.c -o hello
これで無警告だった。
c99はGNU/Linuxだとgcc -std=c99を実行してる。
icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello
でも成功。
GNUのコンパイラでもIntelのコンパイラでもちゃんと処理できるのでいいんじゃないかなぁ。
デフォルトの名無しさん (ワッチョイ bf9f-pYQO) [] 2018/10/17(水) 01:16:05.15:GVzdQn3+0
そうだったか。
デフォルトの名無しさん (ワッチョイ 27b3-LG9r) [sage] 2018/10/17(水) 01:41:12.15:aiP21AAI0
main に限り 戻り型int としながらも return で値を明示的に返さない場合
暗に return 0; とするってなかった? (653 で exit() 無しでもセーフ)
デフォルトの名無しさん (ワッチョイ c7e3-Zu1O) [sage] 2018/10/17(水) 01:48:50.18:aAn3UH6A0
c99から(とc++も)main()は特別扱いで省略時はreturn 0;と扱われる
とググったらでてきた

なんでmain()だけ?どうせなら関数全てそうしちゃえばいいのに、と思わなくもない
デフォルトの名無しさん (ワッチョイ bf9f-pYQO) [] 2018/10/17(水) 02:29:49.55:GVzdQn3+0
なんと。そうだったのか。
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/17(水) 03:22:55.94:FoS95tj1M

「書かないこと」が一命令と等価ってどうよ?
デフォルトの名無しさん (ワッチョイ 4723-KSPj) [sage] 2018/10/17(水) 03:32:50.43:4awkQadJ0
不定の戻り値なんて殆ど使いもんにならんから
戻り値がスカラー型ならコストも低いし 0 返してる扱いでいい気がする
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 04:22:55.42:Nvagglal0

-std=c99いらねって
デフォだぞ今のgccは
デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 06:39:43.66:p0V48QfGM

そんな余計な機能は要らんわ
デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 06:40:15.60:p0V48QfGM

お前は何を言ってるんだよ w
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 07:36:54.39:Nvagglal0

ニホンゴワカリマスカ?
デフォルトの名無しさん (ワッチョイ 6735-4Hut) [sage] 2018/10/17(水) 08:11:38.95:zWYuH5Te0
確かSolaris+sunのコンパイラではreturn 0 もexit(0)も書かんかったら$?は不定だったような記憶がある
デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 08:13:06.68:p0V48QfGM

iccワカリマスカ?
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 09:26:43.05:Nvagglal0

だから何?
デフォルトの名無しさん (ブーイモ MM0b-SHtH) [sage] 2018/10/17(水) 09:31:50.81:OPyv/DAJM

日本語わかってないのはお前じゃん
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 09:49:25.33:Nvagglal0

頭が馬鹿なお前に言われたかねえぜ
デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 10:05:24.48:p0V48QfGM

で、誰が gcc で -std=c99 を指定してるって?
恥の上塗りすぎる w
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 10:27:25.05:Nvagglal0

デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 11:19:59.47:p0V48QfGM

デフォルトの名無しさん (ラクッペ MM5b-/wJ2) [sage] 2018/10/17(水) 12:45:18.81:5mPHIqhKM
マ板で見つけたんですけど、何がやばいんですか?
355 仕様書無しさん sage 2018/10/17(水) 10:31:44.15
ttp://https://qiita.com/hamichamp/items/7b7a7ee091a6856ac900
こんな奴でもフリーランスになれるんやな
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 12:57:28.62:8efdFbKLa

え?そこに書いてある通りでは?
デフォルトの名無しさん (ラクッペ MM5b-/wJ2) [sage] 2018/10/17(水) 13:16:02.45:5mPHIqhKM

すみません勘違いしてました
このブログの投稿者がフリーランスでこの記事の人のことではないんですね
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 13:33:54.04:Nvagglal0

確かに、俺が何を言ったのか、おまえ解ってないな
だから聞いたのか

672で自らの理解力を露呈して自爆しやがってw
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/17(水) 13:47:12.06:MkHFWGSb0

だれかこれに触れてほしい(自己主張)
C99というかモダンCプログラミングの初歩として
(手前味噌だが)かなりいい感じだと思うんだけどどうかな。

とりあえず今までのhello worldプログラムは
・return文、しかも0固定をmain()関数に書いてしまっている
・main()関数に直に処理を書いてしまっている。
などの理由であまり実際に即していないと思うのよね。
デフォルトの名無しさん (ワッチョイ 4723-KSPj) [sage] 2018/10/17(水) 13:58:30.03:4awkQadJ0

人は互いに理解し合えるという幻想に対する反例として読んでます
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 13:59:47.69:8efdFbKLa
別にmain()に処理書いてもいいと思うがな。パッと見てわかるぐらいの小ささなら。

まあしかしこれは各個人の信仰の問題であって言語そのものの制限ではない。
そこまでなんとかしたいならそういう言語を作るしかない。
布教活動すれば信者は増えるだろうが相変わらず教義に反する異端者はこの世に存在し続ける。
デフォルトの名無しさん (オイコラミネオ MMfb-KnhR) [sage] 2018/10/17(水) 14:08:29.78:yNGPPWpxM

hello world に求められることは、できるだけ少ない手数でイメージ通りの結果が得られることだと思うんだ。宗教の前に。
に込められた思想が分かるようになるのはずっと後。
まあ、ある程度分かるようになってからのお題としてここで議論するのは面白いかもね。
デフォルトの名無しさん (アークセー Sx9b-wEhW) [sage] 2018/10/17(水) 14:25:03.69:JU3vAU4Ix
mainの中にputsの代わりに別関数呼ぶと言うのはビジネスロジックをmainから極力排除するという意図があると推測するけど、最初の一歩としては複雑すぎる。
いきなり最初から関数、inline、static、exitの仕様を理解する必要があるので。
デフォルトの名無しさん (ワッチョイ c708-4Hut) [sage] 2018/10/17(水) 15:12:32.44:Nvagglal0
スタイルの問題じゃねえ
sizeof(32)とか書いてるアホが指導員やってることが問題なのであって
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 15:16:21.42:mC+TJhpha
voidといいsizeofといい、今年は豊作だなw
デフォルトの名無しさん (ワッチョイ 4708-I59m) [] 2018/10/17(水) 15:38:23.06:6YtQ5uRO0
b=の書換質問は釣りだったんだな
デフォルトの名無しさん (ワッチョイ df9f-5hEM) [] 2018/10/17(水) 16:16:17.24:O9lRBr4Z0
voidくん見てる〜?
sizeof(32)くんて友達出来てよかったねw
デフォルトの名無しさん (アウアウエー Sa9f-M9VF) [sage] 2018/10/17(水) 16:32:00.39:TQLylYbFa
ブルーボトル日本開店おめでとう。
西海岸で飲む、いつもの味。僕にとって新鮮みがないことが、成功の証だと思う。
デフォルトの名無しさん (ドコグロ MMff-EA7j) [sage] 2018/10/17(水) 18:16:44.83:p0V48QfGM

で、ごたくはいいからの回答書いてみろよ
まあ書けずに逃げ回るんだろけどな w
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 18:18:55.24:jwV5Qww90


ゴミだね

お前ら初心者はもう少しわきまえた方がいい。
初心者が思いつきで出来る領域はCにはもう残されていない。そういうのがやりたいのならGoやRustに行け。
C99からもう20年近く経つ。
その間、誰もそういうことをやらなかった(或いは、やっても流行らなかった)のは、その必要がないからだ。
今のお前のように、無視されて終わったからだ。

それが何故ゴミなのか理解出来ないうちは、もっとコードを書くことだ。
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 18:31:08.37:bYFTmDwea
半角にするの忘れてるぞ
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 18:50:31.41:jwV5Qww90

俺は半角君ではないし、あおり抜きでゴミだって事だよ。
マジでそういうことを世界中の誰も20年間しなかった理由を考えてみろ。

この期に及んでお前らみたいな糞初心者がCに溢れている意味が分からんが、
お前らはどうやらどの言語でも良くて、単に流れているスレに溜まっているだけだろ。
だから無理にでも流れないと不安になるから無駄釣りしているわけでさ。
そういうのも迷惑だから止めろ。
デフォルトの名無しさん (ワッチョイ dfeb-AFTh) [sage] 2018/10/17(水) 19:22:06.89:EXKxlQhR0
マジックNGワード「お前ら」 ※2(5)chの全板共通

釣りレス or 気が触れた方のレス or 玄人ぶった素人のレスなど。
ウザいレスを回避する際に使用します。

参考:
【レス抽出】
対象スレ:C言語なら俺に聞け 148
キーワード:お前ら

抽出レス数:18
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 19:59:27.76:jwV5Qww90

お前らが駄目なところはそういう所なんだけどな。
最近パヨクが急速に腐ったのも同じ理由だ。

最近は693みたいに、「俺の希望する意見じゃなきゃイヤ」な奴が多すぎる。
ネットってのはリアル以上にいろんな人がいて、様々な意見を聞ける。
その中で、どんな偏った意見も、探せば出てくる。
フィルタ(ブロック)しまくれば都合がいい意見しか見えない状況が簡単に作れる。
これは昔で言う、イエスマンで周囲を固めた状態だ。一番やってはいけないと言われていたことだ。
そしてそれをやりまくったのがパヨクで、今は世間とずれまくってるだろ。

今の状況で俺をブロックするのなら、お前らはパヨク以下に落ちる。
勿論、俺が言っていることが間違いだらけで、読む価値無しと判断するなら、フィルタするのは自由だ。
しかし実際の所、を肯定的に評価している奴なんて誰もいないだろ。俺が一番はっきり言っただけであってさ。
この状況で俺をフィルタするってのは、お前はパヨク予備軍だって事だよ。

世界中を探してを褒めてくれる奴を見つけだし、そこに移住すれば、君らは幸せになれるだろう。
俺も君らが居なくなって清々するし、有り難いから、そうしてくれれば助かるのだが。
そもそも、この程度でNGが必要な奴はここ(2ch)に来るべきではないし。


まあ、には俺が見えてないはずだから、この話はここで終わりだが。
デフォルトの名無しさん (ワッチョイ df9f-5hEM) [] 2018/10/17(水) 20:06:48.77:O9lRBr4Z0
などと意味不明の供述をしており
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 20:12:27.30:jwV5Qww90

もゴミだけどな
デフォルトの名無しさん (ブーイモ MM0b-LEUL) [sage] 2018/10/17(水) 20:27:13.80:oiR6YjXfM
早く自分の巣に帰りなよ
ttp://mevius.5ch.net/test/read.cgi/tech/1533459756/
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/17(水) 20:44:17.20:NzFClE36M
お題は「モダンなCでHello World」です

ファイッ!
デフォルトの名無しさん (ワッチョイ e764-66c6) [sage] 2018/10/17(水) 20:50:17.71:MkHFWGSb0
弁明しておくと、俺の は釣りじゃなくて、まったくの興味というか
こういうプログラムのほうがいいんじゃないかという提案だった。
結果的に荒れ気味になってしまったのはすまん。
(個人的には旧hello worldよりも洗練されていると思うんだけどなぁ……)
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/17(水) 20:56:16.85:NzFClE36M
好きか嫌いかよりコードで語れよ!!
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 20:58:45.43:jwV5Qww90

お前も何故か必死なんだな。

同一人物でないのなら、単にを褒めてやればいいだけだろ。
そこで「気に入らない意見」(に反論)ではなく、
気に入らない意見を言った「俺」にフォーカスしてくる辺りがパヨク予備軍なんだよ。

実際の所、ネット上には間違ったことを言う奴も多い。それが俺だというのならさておき、
誰もを褒めてないし、20年間世界中でそんな馬鹿なことをした奴が居ないのも事実なんだから、
そのことをふまえて普通に考えれば、がゴミなのは事実だし、自明だろ。

ゆとりはスクラムを組んで連呼し、黒を白だと主張する事がよくあるが、それは明白な間違いだよ。
てゆうか、一体お前らは何がしたいん?
ゴミをゴミだと言われない匿名掲示板なんて、逆に存在価値がないだろ。
腐されたくないだけなら、FaceBookでやるべきだ。
後ろ指さされることはあっても、堂々とゴミだと言われることはあまり無いはず。
それがお前らの望みなんだろ?
(今回のもそう。ここでボロカスに言われることはあっても、直接言われることがないからあのままなのであって)
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 20:59:31.12:OPzCf6X6a

洗練されているとは思うが学び始めたばかりの初心者に最初に見せるサンプルプログラムとしてはやはり複雑なのではないかと思う。
デフォルトの名無しさん (アウアウカー Sa7b-GU/K) [] 2018/10/17(水) 21:07:03.53:OPzCf6X6a

お前はゴミだ。
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 21:44:14.14:jwV5Qww90

褒める気があるのならもっとはっきりと褒めろよ。


そういうところがお前らの駄目なところだ、と言っているわけだが。
まあ所詮それがゆとりの限界だよな、とは思う。
否定されたことがないから否定されることに過敏なのか?最近この手の輩はよく見かけるが。

しかし、俺をゴミ呼ばわりするお前ですら程度しか言えないのなら、
逆に俺の意見「はゴミ」を補強しているではないか。
俺をゴミ呼ばわりするのなら、もっとベタ褒めしないと筋が通らないだろ。
そのことにすら気づけないのか?
デフォルトの名無しさん (ワッチョイ 674f-gma9) [sage] 2018/10/17(水) 22:03:17.39:jwV5Qww90

一応マジレスしておく。
ただし技術的な答えは書かない。
これは最近、この手で煽って答えを書かせる輩が増えていると感じるから。
そういう奴らにはエサを与えず、餓死させるのが習いだ。
君のせいではないから、この点は安心していい。

> こういうプログラムのほうがいいんじゃないかという提案だった。
これはいい。
というか、こういうのを自由にやれるところがいいところであって、
逆に、遠慮して何も言えないようなら匿名掲示板の存在価値はない。
だから、思ったことはどんどん言えばいいし、
それについて文句を言いたければ言えばいいし、結果的に荒れても問題ない。
ここは、そういう場所だから。
逆に、FaceBookや実名空間で出来ることをここでやるべきではない。
実名空間で口頭でやった方が手間もかからず早いからだ。

問題は、ゴミをゴミだとはっきり言いきった俺に対して、
言い方が良くない系の言いがかりを付けてくる馬鹿が多いことだ。
匿名掲示板で全員が意見をオブラートに包んで言うようになったら存在価値なんて無くなる。
そもそも、それを求める奴がここに来るのも間違っている。
そんな奴は、少なくともコテハン制の所に行くべきなのさ。
デフォルトの名無しさん (ワッチョイ e780-gma9) [] 2018/10/17(水) 22:07:22.33:Ny9Q/0jK0
相変わらず低学歴知恵遅れたちは
超どうでもいいことで
超どうでもいいレスをひたすら書きこんでるわ
デフォルトの名無しさん (アウアウカー Sa7b-v5lg) [] 2018/10/17(水) 22:07:25.85:MwWLHD/ka

言えてる。

CASL2の勉強で1から140までの合計を求めて、その数を文字列に変換するプログラム書いたんだけど、どうよ?
ほら。Cって組込にも使われるじゃん。
printfが無い環境のために良い練習じゃん。
(実際、組込Cでprintf無いけど、キャラクタディスプレイ付ければ文字コードを送ると表示される環境と言うのがある)

なぜ140かと言うと各桁が同じ数字じゃ無いので保存場所の間違いに気付きやすいから。
4桁は合計で出た数の桁数。

キャラクタディスプレイの代わりにputs縛りって事でさ。
デフォルトの名無しさん (ワッチョイ bfd5-KnhR) [sage] 2018/10/17(水) 22:09:24.04:SO2V+VK90
長いよ
コードと同じように簡潔にやろうぜ
デフォルトの名無しさん (ワイモマー MMff-ytAd) [sage] 2018/10/17(水) 23:03:46.64:NzFClE36M
半角 VS ゴミ
盛り上がってきました
デフォルトの名無しさん (アウアウウー Saeb-EuHm) [sage] 2018/10/17(水) 23:25:43.86:35FivH1Pa

hello worldの目的からすれば、意味のある動作する完全なコードを最もシンプルにかつ素直に表すことが重要だと思うから、個人的には従来のhello worldの方が「洗練」されてると思う。
デフォルトの名無しさん (ワッチョイ 7e5b-PTxd) [] 2018/10/18(木) 00:56:03.83:kg6wANGU0

でもvoid君はC言語詳しくないじゃん
デフォルトの名無しさん (ワッチョイ ea12-tM5n) [sage] 2018/10/18(木) 01:24:29.78:YedLW6kI0
見立てによるとJava厨だからな

voidは知ってるが引数voidは知らない、
となればJavaスレで相手にされなくなってCスレにマウンティングしに来たクズだ
はもう伝説だろ
デフォルトの名無しさん (ワッチョイ afcc-nBLa) [sage] 2018/10/18(木) 02:05:44.91:WDPIjajG0

おまえの勝手な妄想にどう答えろって言うんだよアホ
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 02:29:02.90:+6TFZypL0

お前らがC言語に詳しいつもりなら、それなりの見解を添えてに対しての意見を言えばいいだけ。
誰一人として褒めてない(≒俺の意見も正しい)この状況で、
そういうゆとりスクラムでゴネて駄目なものをさも素晴らしいことにしようとするからゆとりは嫌われる。
お前らは自覚出来ていないようだけども。

いずれにしても、ゆとりスクラムなんて誰も得しないから止めとけ。
お前ら自身も学ぶ機会を失っているだけだし。

表面的な言い争いでスレが潰れることはない。
だって、本当にそう思って主張したのだから、それでいい。それで荒れるのなら、それも仕方ない。
ただ、スクラム組んでるゆとりみたいに、自由な意見を排除しようってのは、スレを毀損し、潰す。
だからそれは止めろと言っている。
お前らが望む「どんな糞コードでも褒めてもらえるスレ」は、ここ(2ch)では存在し得ない。
お前らみたいに、自分の意見を全く言わず、ただ他人を馬鹿にしたいだけの奴が居るのも、また事実だから。

ただここら辺、何度言ってもゆとりには通じないところをみると、やはりギャップがある。
俺には、ゆとりが望む「どんな糞コードでも褒めてもらえるスレ」は存在価値が無いと思える。
読んだとしても、全く上達に繋がらず、むしろ道を誤ることになるからだ。
ここら辺がマジで通じないのは何故か、分かる人がいたら、解説願いたい。

ゆとりは今の居心地の良さ、つまり、書いてある内容の正誤より、言い争いのないだけのスレを好む傾向がある。
そして、それが長期的にはスレを殺すことも認識出来ない。実際、それでスレがゴミ化するのを何度も見てきた。
これがゆとりの特性、ってことなのかね?

まあとにかく、誤解無いように何度も言っておくが、
俺自身は653や679のような主張はやりたいのならやればいいと思っている。
そして中身はゴミだという見解だ。
結果的に荒れたようになっているのは679のせいではないから、萎縮する必要はない。
が、誰も褒めないコードを素晴らしいと思えちゃうのは、679に技術的な問題があるんだよ。それは自覚した方がいい。
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/18(木) 03:00:15.26:SqeIqpTY0

指摘あざす。荒れ気味になっちゃったのは残念だけど、俺のコードに関して(賛否関係なく)F/Bを貰えたのは嬉しい。

差し支えなければどの辺りがゴミなのか教えてもらえないかな。今後に生かしたい。
というよりも、既存のhello worldプログラム——つまり
#include <stdio.h>

int
main(void)
{
printf("Hello, C!\n");

return 0;
}
で、(C言語の関数としてはあまりに多機能で異質な)printfを使っていたり
組込み機器向けのプログラムでもないのにmain()関数をreturnで終了していたり
main()関数のなかに直に処理を書いてしまっている点は、問題ないと考えているってことだよね。
これらはこのプログラムを書く初心者にとっては不要な心配だということかな。
デフォルトの名無しさん (ワッチョイ ff23-yU1x) [sage] 2018/10/18(木) 03:05:01.38:acZxv8zY0
ほんと人間は分かり合えないという実例だな
その2つの指摘のどちらも誰にも共感されないだろう

世界は広いから「誰にも」は言い過ぎかもしれないけどさ
デフォルトの名無しさん (ワッチョイ afcc-nBLa) [sage] 2018/10/18(木) 03:17:25.13:WDPIjajG0

組み込み機器ではmain()関数をreturnで終了せよと?
デフォルトの名無しさん (ワッチョイ 269f-nBLa) [] 2018/10/18(木) 03:42:00.06:CSkK3ONp0

への意見以外の事を長文で沢山書いてるのは君だ。
もっと自分のやっていることを自分で見た方が良い。
デフォルトの名無しさん (ワッチョイ 6ab3-hO2L) [sage] 2018/10/18(木) 04:54:24.19:iSVWVd6E0

勝手な妄想?

> c99はGNU/Linuxだとgcc -std=c99を実行してる。
> icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello
> でも成功。

に対して

> -std=c99いらねって
> デフォだぞ今のgccは

って書いたアホがいたって話なんだが w
デフォルトの名無しさん (ワッチョイ 379c-nBLa) [sage] 2018/10/18(木) 06:21:20.70:M8AMqVol0

だから書いたが
それがどうしたんだよ

おまえiccがどうたらぬかしてたろ
ちゃんとそこをからめて説明してみな
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/18(木) 06:34:59.00:k5RfC1S9M
半角はまだコード書き込んだりする分よりマシだな
デフォルトの名無しさん (バッミングク MMab-PhZZ) [sage] 2018/10/18(木) 06:45:51.12:LRx1sLItM

どちらがより初学者向けかの比較の問題だと思う。
既存のhello worldが今の時代に則して最適とは思わないけど、それにも増して貴方のhello worldがいきなり覚える要素が多すぎて適切じゃない。
ちなみに組み込みを何か勘違いしてるっぽいけど、普通はmainからreturnさえしない。
デフォルトの名無しさん (ドコグロ MM3b-hO2L) [sage] 2018/10/18(木) 06:47:39.20:zbm0s+GWM

-std=c99
って書いてあるのは

1. > c99はGNU/Linuxだとgcc -std=c99を実行してる。
2. > icc -std=c99 -O2 -Wall -Werror -Wextra hello.c -o hello

の2つ

1. のことを言ってるならc99コマンドの作者に言え
2. のことを言ってるなら精神科か眼科に行け

って話な w
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/18(木) 07:09:12.87:SqeIqpTY0

> 普通はmainからreturnさえしない
マジかw これは恥かしい勘違いだわ。
普段まったく組込み関係に触れてないのがバレてしまった。
デフォルトの名無しさん (ワッチョイ 8b8a-Aaj1) [sage] 2018/10/18(木) 07:46:50.50:OVQJgcG30
OSが存在しない組込み系ではあり得ないこともない
通常は電源投入後スタートアップルーチンからmain関数を呼び出して電源遮断するまで永久ループ
万一、電磁パルスや放射線等でマイコンが動作しプログラムカウンタの値が狂ってループ外に脱出した場合は強制リセットで再起動

void main(void) {
while(1) {
... // メインループ: 永久ループで脱出不可
}
_asm("JP VECT_RESET"); // 異常発生により強制リセット: スタートアップルーチンへ強制ジャンプ
}
デフォルトの名無しさん (ワッチョイ 7b23-1+BR) [sage] 2018/10/18(木) 07:52:06.39:VFmelRyo0
確か今のコンパイラ(icc,gcc,clang)ってデフォルトで-std=gnu99か-std=gnu11じゃなかったっけ
デフォルトの名無しさん (ワッチョイ 8b8a-Aaj1) [sage] 2018/10/18(木) 07:52:47.02:OVQJgcG30
訂正
マイコンが動作
マイコンが誤動作
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/18(木) 08:00:46.41:SqeIqpTY0

そうかもしれないが
gnu99とc99はちょっと動作違うじゃん?
と言ってもトリグラフの警告の有無とかその程度だけど。
c99コマンドは-std=c99だけどiccコマンドは-std=c99を明示すべきと判断した。
デフォルトの名無しさん (ワッチョイ 269f-eYdq) [] 2018/10/18(木) 08:38:10.70:CSkK3ONp0

その辺はどう作るかによるだろう。
デフォルトの名無しさん (アウアウエー Sae2-HClE) [sage] 2018/10/18(木) 08:57:20.34:q7k7CaDsa
voidに加えてreturnが加わった?
デフォルトの名無しさん (バッミングク MMab-PhZZ) [sage] 2018/10/18(木) 09:11:12.73:LRx1sLItM

プロセスベース以外の組み込みソフトでmainからreturnするコードを見たことないんだけど、もし差し支えなければ後学のためにどんな作り方があるのか教えてください。
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 09:11:29.09:xtVP5nmJa
本当に今年は豊作だ
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 09:13:27.72:xtVP5nmJa

そんなもんmain呼ぶcrtの方で無限ループするように作っとけばできるじゃん。
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/18(木) 09:19:15.80:qf9NxgCDa
に誰も挑戦しねーし。。。

千の位は1000で割れば数が出るし、余りが千の位を引いた数だから、今度は百の位、十の位ってする。
各位の数字に16進数の30(文字コードで数字の0)を足すと文字列の完成。
(Cだと末尾に¥0も必要。“0000”とか文字配列作れば自動で挿入される)

大まかなロジック教えれば書けるだろ。
分かってみれば大した事してないんだよ。
デフォルトの名無しさん (バッミングク MMab-PhZZ) [sage] 2018/10/18(木) 09:20:39.69:LRx1sLItM

「そういう作りもできる」ってのは分かります。
mainの外部に無限ループのあるソースは見たことないので普通はそんな事しないと思ってました。
デフォルトの名無しさん (アウアウエー Sae2-HClE) [sage] 2018/10/18(木) 09:20:47.49:q7k7CaDsa
経験的には、exitしちゃだめというシステムはあったけど、returnしちゃだめというのはなかったなあ。
returnに到達しないプログラムはもちろんあるけど。
デフォルトの名無しさん (バッミングク MMab-PhZZ) [sage] 2018/10/18(木) 09:22:20.30:LRx1sLItM

補足です。
mainからreturnした後に無限ループってのは普通に見ます。
あくまでmain自体を無限ループで囲んでいるのは見たことなかったです。
デフォルトの名無しさん (ワッチョイ ea6e-nBLa) [sage] 2018/10/18(木) 09:43:07.26:jV/G7rqZ0

つまり精神科に行くのはおまえってことだな
語るに落ちたなw
デフォルトの名無しさん (ワッチョイ 2e23-nBLa) [sage] 2018/10/18(木) 11:44:54.60:9LQIedmj0
一周まわって、何かあったらどんどんexitするようにしたよ

メモリリークしてるかも? ⇒ 一応プロセス再起動
処理が滞ってきたかも? ⇒ 一応プロセス再起動

便利なOSを使うようになってからどんどん怠ける一方よ
デフォルトの名無しさん (アウアウエー Sae2-HClE) [sage] 2018/10/18(木) 12:46:19.16:q7k7CaDsa
めっちゃプロセス起動速いOSあってもいいよねと思ったけど、結局LWPのスレッドになるんだろうな
デフォルトの名無しさん (ラクッペ MMc3-2+nH) [sage] 2018/10/18(木) 12:58:15.88:rzx784yQM
メモリリークとか、そこら辺勉強するのにおすすめの方法ある
デフォルトの名無しさん (アウアウカー Safb-Tmzw) [sage] 2018/10/18(木) 13:59:29.92:4lyuEWGMa
たんにfreeとかdeleteすればいいだけだからなあ。
オブジェクト指向・デザインパターン一般の教科書読めば自然に身につきそう
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 14:06:31.65:tgytymo80
メモリーリークの勉強は本で学ぶよりも
痛い思いをして体で覚える方が身につく

個人の感想ですけどw
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 14:51:32.83:G4vijIF0a
C言語は言語レベルではオブジェクト指向はサポートされていない
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 14:54:22.85:G4vijIF0a

しかし身に付いても中々メモリリークのバグはなくならないよな。
やはりその辺が心配なら他の言語使った方が良いと思う。
デフォルトの名無しさん (アウアウエー Sae2-Tmzw) [sage] 2018/10/18(木) 14:58:25.72:daUW8tpUa
クソコードに揉まれてクソコード書きになった人も多いから、クソを体験しろとも言えんな…
長い時間かけてデバッグして身についたもんは確かにあるけど、人生は貴重だからな。
デフォルトの名無しさん (ワッチョイ ea6e-nBLa) [sage] 2018/10/18(木) 14:58:42.11:jV/G7rqZ0
ロジックが組めないやつ多いな
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 15:18:22.83:ca3mAHpxa
インスタンスのライフタイムさえ設計すればメモリリークなんぞ発生しないと思ってるわ
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 16:28:17.06:hfM3a7YWa
誰もがそう思うのだよ。

しかしこの世は思い通りにはならんのだ。
デフォルトの名無しさん (ワッチョイ ea6e-nBLa) [sage] 2018/10/18(木) 17:01:30.59:jV/G7rqZ0
言い訳見苦しい
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 17:03:30.38:tgytymo80
プログラムは思った通りには動かない、書いたとおりに動く
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 18:23:41.17:hi9P8c2Aa
俺はC使い始めて3年のペーペーだけど、リークなんてやらかしたことないし、今後もやらかすと思えない

敗北を知りたい
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 18:30:40.98:tgytymo80

多分仕事させてもらってないだけだろう
デフォルトの名無しさん (JP 0H1b-87xj) [sage] 2018/10/18(木) 18:31:07.24:e4/wObWIH
「malloc()使ったら負け」
strdup()「……」
デフォルトの名無しさん (アウアウウー Sa9f-nBLa) [sage] 2018/10/18(木) 18:46:49.06:aXnVPh22a
初心者は初心者であるが故にそれに気が付かない
デフォルトの名無しさん (アウアウウー Sa9f-Tmzw) [sage] 2018/10/18(木) 19:06:12.18:qjnLT1/0a
freeしなくて済むならそれにこしたことないわ
デフォルトの名無しさん (ワッチョイ 7bea-UhuV) [sage] 2018/10/18(木) 19:11:03.75:Lxt1YLpM0
リスト構造でありそうな、作った所と殺すところが入れ子になり難いのは気をつかう
デフォルトの名無しさん (ラクッペ MMc3-2+nH) [sage] 2018/10/18(木) 19:20:20.66:rzx784yQM
C++erだけどmallocなんてもうしたくない
まあ、勉強するときにしてるけど
デフォルトの名無しさん (ワッチョイ 7bea-UhuV) [sage] 2018/10/18(木) 19:23:14.70:Lxt1YLpM0
あと開放された後なのに、そのポインタのデリファレンスしてたり

別スレッドで確保した時、そこに割り当て発生〜別スレッド側の正当な書き込み
→ 不当な側のデリファレンスでブッコワレーターな値 とか
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 19:26:42.15:9i8IzX+1a
C++だと工夫すればかなり自動化できるんじゃないか?
Cと同じようにも書けるからハマる時はハマるだろうけど。
デフォルトの名無しさん (アウアウウー Sa9f-Tmzw) [sage] 2018/10/18(木) 19:40:59.71:qjnLT1/0a
入れ子って意味間違ってない?
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/18(木) 19:46:10.54:qf9NxgCDa
734 デフォルトの名無しさん (アウアウカー Safb-dUTK)[] 2018/10/18(木) 09:19:15.80 ID:qf9NxgCDa
に誰も挑戦しねーし。。。

千の位は1000で割れば数が出るし、余りが千の位を引いた数だから、今度は百の位、十の位ってする。
各位の数字に16進数の30(文字コードで数字の0)を足すと文字列の完成。
(Cだと末尾に¥0も必要。“0000”とか文字配列作れば自動で挿入される)

大まかなロジック教えれば書けるだろ。
分かってみれば大した事してないんだよ。
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/18(木) 19:47:20.69:qf9NxgCDa
; SAMPLE3 12,15,42
PROG1 START MAIN
MAIN LD GR0,MIN
LAD GR1,0
LOOP CPA GR0,MAX
JPL LOOPEND
ADDA GR1,GR0
ADDA GR0,STEP
JUMP LOOP
LOOPEND ST GR1,SUM
LAD GR2,0
LAD GR0,0
CPA GR1,BMAX,GR2
L1000 JMI L1000END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L1000
L1000END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
LAD GR0,0
CPA GR1,BMAX,GR2
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 19:47:28.28:ca3mAHpxa
>>754
何をしたらリークするのか逆に聞きたい
仕様を読んでないアホな顛末は要らんです
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/18(木) 19:47:29.90:qf9NxgCDa
L100 JMI L100END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L100
L100END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
LAD GR0,0
CPA GR1,BMAX,GR2
L10 JMI L10END
SUBA GR1,BMAX,GR2
ADDA GR0,STEP
CPA GR1,BMAX,GR2
JUMP L10
L10END ADDA GR0,ZERO_S
ST GR0,STR,GR2
ADDA GR2,STEP
ADDA GR1,ZERO_S
ST GR1,STR,GR2
OUT STR,LEN
RET
MIN DC 1
MAX DC 140
STEP DC 1
SUM DS 1
BMAX DC 1000,100,10
ZERO_S DC #0300
STR DS 4
LEN DC 4
END
◆QZaw55cn4c (ワッチョイ 8a60-oeap) [sage] 2018/10/18(木) 19:48:27.83:ErYslHJw0


それは甘いと思います


気がついていないだけだと思います
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/18(木) 19:49:54.55:qf9NxgCDa
まあ、CASL2のコード載せたからって書くやつが現れるなんて思ってないが。。。
本っ当にお前ら終わってるな。

プログラマーになり損なった俺より、なお悪いわ。
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 19:56:27.89:ca3mAHpxa

デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 20:01:35.14:9i8IzX+1a

malloc()等でメモリ確保してfree()しなければメモリリークになる。
その他strdup()のように内部でmalloc()を使っているやつは同様。
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 20:03:41.77:ca3mAHpxa

> 仕様を読んでないアホな顛末は要らんです
デフォルトの名無しさん (アウアウカー Safb-nHS7) [] 2018/10/18(木) 20:12:08.73:9i8IzX+1a

何をするとリークするかを書いただけだが?
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 20:37:01.47:ca3mAHpxa

だからそんなアホなレスは要らんです、と書いたんだが?
デフォルトの名無しさん (ドコグロ MM3b-hO2L) [sage] 2018/10/18(木) 20:41:42.24:zbm0s+GWM

はいはい

精神科医ってこう言う輩の相手するんだよな...
大変なお仕事だわ w
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 20:44:20.85:tgytymo80
「私の書いたプログラムは絶対にメモリーリークは発生しません。バグもありません。試験は不要です」

こういうこと、一度は言ってみたい
デフォルトの名無しさん (ブーイモ MM17-SAcu) [sage] 2018/10/18(木) 20:58:01.13:KO6AKpPQM
たったこれだけでリークするコードを仕込んだことになる。
もちろん仕様書通りの動作だけど、ノウハウ集を見るまえに気づくのはわりと難しいかもね。

p = realloc(p, 1 * sizeof(int));
デフォルトの名無しさん (ワッチョイ 269f-eYdq) [] 2018/10/18(木) 21:06:20.49:CSkK3ONp0

しかし君はアホだから丁度マッチした適切なレスではないかな。
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/18(木) 21:07:35.06:cOwpgSZ30

そういった意味で realloc は若干まどろっこしいね。
失敗時は元と同じポインタを返して errno を設定してくれる方が変数のやりくりが簡単になりそう。
デフォルトの名無しさん (ワッチョイ 269f-eYdq) [] 2018/10/18(木) 21:08:03.73:CSkK3ONp0

それでリークするかどうかはその他の部分がどう書かれているかによるのでは?
デフォルトの名無しさん (アウアウウー Sa9f-Tmzw) [sage] 2018/10/18(木) 21:09:48.06:qjnLT1/0a
実際はmalloc失敗した時点でリークもへったくれもないと思うよ
デフォルトの名無しさん (ワッチョイ 269f-eYdq) [] 2018/10/18(木) 21:10:01.05:CSkK3ONp0
ああ。失敗した時か。確かにリークするな。
そういう時はもう処理続行不能って事にしてexit()させてる。
◆QZaw55cn4c (ワッチョイ 8a60-oeap) [sage] 2018/10/18(木) 21:11:09.99:ErYslHJw0

realloc() が 0 を返すと p の持っていた値は失われ、free() できなくなる
デフォルトの名無しさん (ワッチョイ 9761-Egl2) [sage] 2018/10/18(木) 21:13:01.26:UwKrwHEY0
ptr = malloc()
p = ptr
p = realloc(p, ...)
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/18(木) 21:14:42.17:cOwpgSZ30

スレッドでの処理だとそのスレッドだけ終了させればよかったりするから、きれいに解放できないと具合が悪いな。
exit していいケースなら exit がいいと思う。
デフォルトの名無しさん (ワッチョイ 73d2-1yD9) [sage] 2018/10/18(木) 22:01:36.74:IGzE2h5q0
内部でメモリ確保しまくるライブラリを使う仕事に当たっちまったら、思いっきり痛い目に会えると思うよ
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 22:29:32.46:+6TFZypL0

俺は書かないと言ったろ。理由は参照。
そして俺は最初に解法も示してる。参照。

つっても理解出来てないようだから、もう少し(非技術的な)解説をしよう。
現状、俺以外の他全員誰も褒めてないんだから、この際理由を『詳しくない』俺にわざわざ求める必要がないだろ。
しかし、何故か俺に意見を書かせようとする輩が多いだろ。お前も含めて。
それがアフィカスじみてて、結果的にスレを潰すから、俺はそれには乗らない、と言ってるんだよ。
見れば分かるとおり、スレの流れが異常だろ。

俺が何度もこのメタ議論を出している理由は、お前らゆとりが全くこの辺について無知だからだ。
お前らゆとりは、オンラインコミュニティは潰していいものだと思っている。
見方が本当に刹那的で、自分の質問に対しての答えが得られれば後はどうなってもいいと思っている。
(ただ乗り出来るし、勝手に発生するものだと思っている)
実際は、オンラインコミュニティだって、成熟するには時間も労力もかかる。
そこがどんなに(お前にとって)糞であれ、住めば都だから住人が居るわけで、そんなに簡単に潰していいものではないんだ。

ゆとりが老害老害と連呼しながらも2chにへばりついているのも、ちょっと考えればおかしいと気づけるだろ。
2chは古いし、年齢層は高い。これは事実で、実際、老害年齢層の存在確率は他のコミュニティよりも高い。
しかし、結局の所、ゆとり流では「既読疲れ」みたいなコミュニティしか形成出来なかったんだよ。これも事実だ。
だからお前らがここに文句を言いつつもへばりついているわけでさ。

それなのに、ゆとり流をここに持ち込もう、というのは全くの筋違いだ。それは2chを破壊するから止めろと言っている。
ゆとりには長期的な視野がない。2chに色々問題があるのも事実だけど、ゆとりに長期的視野と運営能力があれば、
今現在の20代は全員ゆとりなんだし、人数は揃っているのだから、
「ゆとりチャンネル」(通称ゆとりちゃん)が出来ても全くおかしくない状況だろ。
それが出来ないって事は、お前らゆとりにもかなり問題がある、ってことでさ。それは自覚した方がいい。
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 22:29:49.28:+6TFZypL0
とはいえ、2chの問題点が目に付くのは理解出来る。
ただ、それに関して「何故そうなっているのかを理解出来ないのに文句を言っている」のが、
全く使えない意識高い系新入社員と同じ事になってる事にも気づいた方がいい。
お前らは完全に空回りしているんだよ。

ハロワも同じだろ。「何故世界中の誰も20年間それを修正しなかったのか」を理解出来ない癖に、
「俺のハロワ、凄いだろ」なんて言っちゃう辺りが痛い。
ただ、それは若さの特権だから、本当にそう思うのなら主張すればいいし、
ゴミなのを誰も褒めないんだから、ここのコミュニティもまだ正常、ってわけだ。

それで、話を戻すと、ゆとり流の無知と横暴は2chを潰すから止めろ、と言っている。
とはいえ、おそらくゆとりには悪気はない。これが話が通じない根本の原因だ。
しかし、2chにはゆとりを排除するシステム自体がなく、へばりつかれたらどうしようもない。
だから俺はゆとりを教育してやろうとしているわけでさ。2chに合う奴だけが2chに来ればいいのであってね。

笑顔で人を殺しても、殺人は殺人なんだよ。ゆとりはこれを理解出来てない。
同様に、どんなに上手に敬語を使っても、スレを毀損しているようでは駄目なんだよ。
ゆとりは乗っ取り行為が酷すぎる。しかもそれを自覚出来てないのが最悪。
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 22:33:14.11:tgytymo80
お怒りは理解しますけど、長い。もっと簡潔に書こうよ
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 22:48:32.02:+6TFZypL0

文句があるのなら、異常な流れになる前に、お前が何とかして終わらせておけ。
それも出来ず、やろうともせずに文句だけ言ってるのだから、お前も相当のゴミだぞ。
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/18(木) 22:48:48.36:4hMlWk5Ba

だけを見て同じ方向を向く人たちには言われたくないなw
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 22:59:17.90:tgytymo80

匿名掲示板なんて、誰が何書いても咎めようがないし
そういうことで腹を立てても何も得しないと思うけど
もっと大人になろうよ
デフォルトの名無しさん (ワッチョイ f380-tM5n) [] 2018/10/18(木) 23:16:58.79:THsg9J3q0
ハロワいけ
ハロワ
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 23:27:27.31:+6TFZypL0

効果はあるんだよ。だから書いてる。
正確に言えば、効果がある奴には効果がある、だが。

はっきり言えば、君の考え方もズレてるんだよ。
コミュニティは、オンラインであれオフラインであれ、存続する為には新人を受け入れるしかないんだよ。
だから、ゆとり世代以降を全員閉め出す、というのもまた間違いだし、
後10-15年後にはゆとりが社会の主力になるんだから、
それまでに駄目なところを鍛え直すのは上の世代の責任でもあるんだよ。
(君の考えに関係なく、俺達はゆとり世代に未来を託すしかない)

だから俺は俺なりの方法でやってる。それで成果も多少は出てる。
お前は何もしようともしてないのに文句だけ言ってるクズだよ。
ネットだから何をやってもいい、ではないんだよ。
同様に、ネットだから何もやらなくてもいい、でもない。
ネットだから咎めようがない、でもない。
まあ君には通じないとも思うけど。
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/18(木) 23:31:27.22:tgytymo80
有益なことなら読んでいるが
長い文章書かれても、大概の奴は読まないだろ
読まれれば効果が有るかもしれないが、
読み飛ばされても文句は言えない事は理解しないと
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/18(木) 23:55:16.65:+6TFZypL0

> 読み飛ばされても文句は言えない事は理解しないと
理解してるぞ。というか、当たり前だろ。お前はアホなのか?

まあお前も理解出来てないのだろうが、なんだかんだでみんな読んでるんだよ。
そのうち分かるようになるよ。
それ以前に、2chの『長文』ごときで無理な奴はプログラマは無理だし。
デフォルトの名無しさん (ワッチョイ 6a9f-zKqf) [] 2018/10/18(木) 23:56:44.20:Mibooz+L0
たまに上から目線で長文書くバカいるけど誰も読まないんだよな
何故かって冗長なだけで大した事書いてないから
デフォルトの名無しさん (アウアウウー Sa9f-Pb4j) [sage] 2018/10/19(金) 00:07:48.01:kRG86wcga
中身のある、読む価値のあるレスなら長文でもちゃんと読むが、ID:+6TFZypL0のは斜め読みしてめんどくさいだけのやつダナーと思いながら適当に読み飛ばしてる。
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/19(金) 00:10:02.34:Av8doxl90

そういうことにしたいのはお前が馬鹿だから。
実際は、賢い奴ほど読んでる。
正確には、賢くなる過程で大量のドキュメントを読む必要があり、結果、
賢くなった奴はおしなべて読む速度が速く、読むことに関してコストがかからないからだが。
そして、俺の意図は馬鹿にはどうせ伝わらないから、俺もそれでいいんだよ。
長文ガー、なんて奴は最初から相手にしてない。

三行で、一行で、というのもまた自由だが、
現代プログラマにドキュメントの読み込み能力がかなり必要なのも事実だし、
これは今後さらに拍車がかるのも目に見えているから、
2chの長文に手こずる程度ならマジで国語からやり直した方がいいぞ。
デフォルトの名無しさん (アウアウウー Sa9f-Pb4j) [sage] 2018/10/19(金) 00:20:52.79:e4N83vJpa

国語の能力に関係なく、攻撃的で、感情的で、実のない部分の比率が高い文章は誰にとっても読みにくいと思うぞ。
汚いコードを読みなれてそういうのを読むのが上手くなったからって、自分のアウトプットするコードは論理的かつ明瞭でキレイでありたいと思わない?
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/19(金) 00:31:51.38:Av8doxl90

何が言いたいのか分からん。
その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

俺は俺なりの方法で対処してる。
読むかどうかは当然読み手側が決める。それでいいという前提で書いている。
君がもっと上手く対処出来るというのなら、君がやればいいだけ。
おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
だから、君が見事に、アホ共を捌き、流れが正常化していれば、俺が出張ることもない。
君が俺にこの手の文を投下させたくないのなら、君が実力を見せればいいだけだ。

やってから言えよ。
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/19(金) 01:22:54.20:AAQqymuL0
長文連投よりはアホがアホなこと書いてる方がマシだな。
デフォルトの名無しさん (ワッチョイ 6a9f-zKqf) [] 2018/10/19(金) 01:25:19.25:U7ZV6G1w0
5ちゃんで上から目線で長文書く奴の特徴は驚く程共通してるんだよな
例外無く論理的思考が欠如しているから要点をまとめる事も出来ないんだよ
デフォルトの名無しさん (ワッチョイ c34f-tM5n) [sage] 2018/10/19(金) 02:00:24.64:Av8doxl90

馬鹿こそそういうことにしたがるのだが、
実際、必要な文章量は、認識/知識のギャップに比例するんだよ。

実例を挙げると、,679、ゴミだね、でしかない。
賢い(知識のある)奴にはこれで十分だし、
無理な奴にはグダグダ説明が必要なだけ。

そして俺はお前らがこの件(メタ議論)については無知だと見てグダグダ説明してるだけ。
そもそもお前らが賢ければこんな事にはならないし。


ただ、そういう、「この場合にはこれ」みたいな定型的な屁理屈返しはマジでゆとりに多い。
そういうのも止めた方がいいと思うぞ。誰の為にもならない。
俺も、何度もその返しは見てきた。
それで、誰も俺みたいな返しをしてこなかったから、
お前らゆとりが調子こいて「これは使える」と勘違いしているのだろうけど、
それは単に見捨てられてるだけだぞ。理解出来てないのだろうが。
◆QZaw55cn4c (ワッチョイ 8a60-oeap) [sage] 2018/10/19(金) 07:03:22.13:akKjNeBd0


>その君の文章が「論理的かつ明瞭でキレイ」だとでも思っているのか?

個人的には は読みやすいんだが、ID:Av8doxl90 は非常に読みにくい
たとえば は文脈・論理の線が、不適切な日本語を使用しているせいで滅茶苦茶だ


>実際は、賢い奴ほど読んでる。…@

>正確には、〜コストがかからないからだが。…A

この「正確には」が、読み手を混乱させるミスリード語。
「正確には」と書く以上、すでに述べた@と同格言い直し内容の後続があるかと期待すると、裏切られて、@の理由を示すAが来る。

>そして、〜伝わらないから、俺もそれでいいんだよ。

「そして」が意味不明、何と何が「そして」で続くのかさっぱりわからない。
「そして」を使うのなら、
「俺の文が、馬鹿には読むコストのかかる文章であったとしても」→「馬鹿にはどうせ俺の意図伝わらないから」→「俺はそれでもいい」…B
と、A部分のキーワード「コスト」という単語を使うことによって、AとBが意味の上でつながっていることを明示するべきだ
Bの冒頭を省くから「そして」が宙に浮く


>おかしな流れにならなければ、俺がわざわざ時間をかけて長文を投下することもない。
上で示したように、君の文章は「おかしな流れ」そのものといっていい
スレが「おかしな流れ」であるとき、それを正すのに「おかしな流れ」の文章が使えるとでも思っているのか?
◆QZaw55cn4c (ワッチョイ 8a60-oeap) [sage] 2018/10/19(金) 07:17:05.03:akKjNeBd0

>上から目線で長文書く奴の特徴
>論理的思考が欠如している

感情にまかせて思いついた単語を羅列するあまり、
前半と後半の意味の整合性がとれていなかったり、前半と後半をつなぐ接続詞が不適切であったり、で、
はっきりいって脈絡がない

書いている本人はテンポ良く文章を量産できる「頭のいい自分」に酔いしれているのだろうが、
実際には量産されているのはポンコツ文
デフォルトの名無しさん (アウアウウー Sa9f-BMDm) [] 2018/10/19(金) 10:18:49.82:gPrGaWTXa
長文をゆっくり書いていられるゆとりのある人はいいなあ
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/19(金) 10:20:47.68:SjrnPnkZa
ポンコツかどうかはコード書かせれば分かるだろ。
この世界では他がポンコツでもコードが書ければ正義だ。
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/19(金) 12:53:54.85:7j5wTJzZ0

すまん。俺には知識もないし賢くもないので
もしもあなたさえ良ければのゴミな点を指摘してもらえると嬉しいな。
デフォルトの名無しさん (ラクッペ MMc3-2+nH) [sage] 2018/10/19(金) 13:19:52.78:R+tFUjApM

いくらコードが書けても設計通りに書けないなら駄目じゃん
デフォルトの名無しさん (JP 0H1b-87xj) [sage] 2018/10/19(金) 13:27:43.51:F6BbYzOIH

hello worldの存在意義は、
その言語に初めて触れる人に、
言語の規格にきちんと準拠して、
最小限の記述で、
きちんと動作する、
何かのプログラムを見せることだよ。
どんな設計スタイルがいいとか教えることじゃない。
デフォルトの名無しさん (ワッチョイ 978a-aSWc) [sage] 2018/10/19(金) 13:59:06.39:P91Z2zs70
hello, worldって
コンパイラをインストールした後
動作確認する為のテスト用だと思ってた
デフォルトの名無しさん (ワッチョイ be61-7PZ0) [sage] 2018/10/19(金) 14:28:27.19:bojs5aOI0
ゲーム機ハックした人が最初に実行した自作アプリがhello worldだったとかなんとか。
デフォルトの名無しさん (アウアウウー Sa9f-BMDm) [] 2018/10/19(金) 14:33:09.80:gPrGaWTXa
カーニハンそんなことやってたっけ?
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/19(金) 15:14:02.97:SjrnPnkZa

設計通りに書けない奴はコードが書ける奴とは言わんだろ。
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/19(金) 15:21:55.54:SjrnPnkZa

どっちも正しい。


GBAハックした時は点を一個表示するのが最初だった。
Hello Worldは二番目。
デフォルトの名無しさん (ワッチョイ 2e23-nBLa) [sage] 2018/10/19(金) 16:34:20.62:2swZl7760
adjtimeって何秒まで調整できるの? 2145秒?
デフォルトの名無しさん (アウアウウー Sa9f-BMDm) [] 2018/10/19(金) 17:14:10.33:gPrGaWTXa
Linuxというかglibcならmanページに書いてあるよ。
デフォルトの名無しさん (ワッチョイ f380-tM5n) [] 2018/10/19(金) 22:42:18.68:zxKaiBZl0
make worldでX立ち上がったときは
感動したものだ
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/20(土) 00:30:32.53:o/rPvxpn0
make world ってなんかかっこいいよな
デフォルトの名無しさん (ワッチョイ ba80-JSR1) [sage] 2018/10/20(土) 00:33:01.78:rwRxHeub0
世界の創造主、いわゆるゴッド
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/20(土) 01:37:49.13:/s/GXT/Q0
それで思い出した
プロジェクトでのmakefile、作成が終わった時に
バナー文字で「make end!」って表示するんだけど
ある人のだけは「big cock!」に書き換えてたっけ

ここには関係者いないよね?
デフォルトの名無しさん (アウアウカー Safb-dUTK) [] 2018/10/20(土) 15:49:24.33:Nttc2RvPa
C言語だから、次世代言語(w)よりもコード出るかと思ったら、出ないのな。
デフォルトの名無しさん (ワッチョイ aebe-fIkj) [sage] 2018/10/20(土) 21:33:22.48:y1kFtLUq0
どうでもいいけど
「w」という名前の言語があるのかと思った。割と本気で調べてしまったw
デフォルトの名無しさん (ワッチョイ 269f-nBLa) [sage] 2018/10/21(日) 04:55:52.71:sz/a4USN0

あるね。
ttp://http://memo.sappari.org/a2z-languages
ttp://http://www.vttoth.com/CMS/index.php/projects/49
デフォルトの名無しさん (ワッチョイ 7e15-nBLa) [sage] 2018/10/21(日) 20:05:57.37:YP/adz7t0

近称で自己紹介乙
デフォルトの名無しさん (ワッチョイ 6ab3-b3y3) [sage] 2018/10/21(日) 21:20:19.52:S2kctYlU0

ごめん、俺は精神科じゃないし w
デフォルトの名無しさん (ワッチョイ be81-xJah) [sage] 2018/10/21(日) 21:28:27.90:o3Tx01ZR0
病気の話を持ち出すのは、そういう体験が豊富にあるからだろう
デフォルトの名無しさん (ワッチョイ 7e15-nBLa) [sage] 2018/10/21(日) 22:08:00.66:YP/adz7t0

人物と診療科を等値比較とかおまえstd::logic_errorだな
デフォルトの名無しさん (ワッチョイ 3bb3-xBTp) [] 2018/10/21(日) 22:17:56.29:+iExR7UM0
Cでfloat型が表す最小の正の数値を求めるプログラム書いてて、
とりあえず1.175494e-38に近づけるように書いてみてるんだが
printfで値表示させながらやってみると1.175494e-38以下も表示されるのなんで?
環境はgcc5.5.0_1

とりあえず最小判定は初期値1.2e-38を0.000001e-38ずつ減らしていって、
1.175494e-38を抜けるとバカな数字が出てくると仮定してif(a / (b - c) != 1)で判定してる

int main(){
float a = 1.2e-38, b;
float c = 0.000001e-38;

while(1){
b = a;
a -= c;
printf("a=%.6e b=%.6e\n", a, b);
if(a < 0 || b < 0) break;
if((a / (b - c) != 1.0)) break;
}

printf("a=%.8e b=%.8e\n", a, b);
if(b < 1.175494e-38) printf("b is not min value\n");
}
デフォルトの名無しさん (ワッチョイ 6ab3-b3y3) [sage] 2018/10/21(日) 22:24:44.10:S2kctYlU0

精神科医のタイポの指摘しかできなくて悔しいね w
デフォルトの名無しさん (アウアウカー Safb-XHS6) [sage] 2018/10/21(日) 22:40:20.13:P+edJh4ea
定数のマクロあったりしないのか
デフォルトの名無しさん (ワッチョイ 7e15-nBLa) [sage] 2018/10/21(日) 23:01:49.92:YP/adz7t0

あ、おまえ間違えたの? アホとヴァカしかやらない間違いだなw
デフォルトの名無しさん (ワッチョイ f3ea-JQ7R) [sage] 2018/10/22(月) 00:28:49.01:4J0CKskh0
基本情報c言語で受かってた
すごいっしょ
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/22(月) 01:24:24.92:qPiOMOlUM

なんかいろいろ勘違いしてないか
>1.175494e-38を抜けるとバカな数字が出てくると仮定して
この仮定がはずれてるから無限ループしてんじゃん
デフォルトの名無しさん (ワッチョイ 3bb3-FQxm) [] 2018/10/22(月) 01:30:41.57:eGJ65JSF0

int型だとオーバーフローすると馬鹿な数字がでてくるからそう仮定したんだが違うのか
率直に聞くんだけど、この場合どうすればいいの?
デフォルトの名無しさん (ワッチョイ 8af9-L5c9) [sage] 2018/10/22(月) 01:41:56.82:ao50gEDc0

バカな数字とかいい加減な理解をしないで、ちゃんとした仕様を調べてみなよ。例えばwikipedia辺りで算術オーバーフローの項目見て全部読んで、分からない語とか関連する語もちゃんと調べるとか。
デフォルトの名無しさん (ワッチョイ 7e5b-aqc6) [sage] 2018/10/22(月) 02:29:56.23:gc2RKbtu0


無限ループはしないけどどんどん値は減っていく。
理由わかるの?828じゃないけど俺も知りたい。
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/22(月) 02:49:07.02:qPiOMOlUM

int?
int使ってる?
デフォルトの名無しさん (ワッチョイ 6ab3-b3y3) [sage] 2018/10/22(月) 04:47:45.21:o0mVKFY/0

sage (ワッチョイ 3bb3-xBTp) [] 2018/10/22(月) 04:59:16.08:eGJ65JSF0

int型で似たようなこと(最大の正の数値を求める)やろうとしたら、バカみたいな数字が出たってだけだよ
デフォルトの名無しさん (ワッチョイ ea11-nBLa) [sage] 2018/10/22(月) 06:47:45.13:MQnoZdqg0

アホw ヴァカwww
名無しさん@そうだ選挙に行こう! Go to vote! (ドコグロ MM22-b3y3) [sage] 2018/10/22(月) 07:09:00.78:PnrNZBigM

名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ ea7c-M8rW) [sage] 2018/10/22(月) 07:36:45.42:3zPWDIkK0

非正規化数(denormal)でぐぐれ
名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ ea11-nBLa) [sage] 2018/10/22(月) 09:03:08.22:MQnoZdqg0

アホとヴァカを認めやがったw
名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 26e7-iIDB) [sage] 2018/10/22(月) 10:25:10.75:OFRfv3K50
KYB
デフォルトの名無しさん (ドコグロ MM22-b3y3) [sage] 2018/10/22(月) 12:24:07.96:PnrNZBigM

意味のわからん解釈で勝ち誇るとか低能の定番乙 w
デフォルトの名無しさん (アウアウウー Sa9f-L0SM) [] 2018/10/22(月) 12:59:00.86:8WYgXfgna
そろそろコードで語れや
デフォルトの名無しさん (ワッチョイ ea11-nBLa) [sage] 2018/10/22(月) 13:28:16.05:MQnoZdqg0

意味わからんのか
よほど高力価のトランキライザーを打たれているようだな
もう末期でオピオイドとかか?
お大事に
デフォルトの名無しさん (JP 0H1b-xBTp) [sage] 2018/10/22(月) 15:05:43.37:K/0BTgUUH
ですが、参考書やらをみてアンダーフロー・正規化についてしっかり理解したところ、解決しました。

要は、float型のビット表現の仮数部が 0.(仮数部) ではなく 1.(仮数部) で表現されてるから、
その意味では
0|00000001|00000000000000000000000
が最小の正数になるけど、仮数部を 0.(仮数部) と表現しても計算できないことはないから、
0|00000000|10000000000000000000000
もちゃんと表示される、ということだけど、
これ以降ずっと計算していくといずれ
0|00000000|00000000000000000000000
となるから、150回目くらいでアンダーフローが起こる、ということらしい。

ありがとうございました。
デフォルトの名無しさん (ドコグロ MMc3-b3y3) [sage] 2018/10/22(月) 19:09:18.14:LClj1fo2M


アホとヴァカとしか言えなくて悔しいね w
デフォルトの名無しさん (ワッチョイ ea11-nBLa) [sage] 2018/10/22(月) 21:38:29.05:MQnoZdqg0

そうか、847にアホとヴァカって書いてあるのか
実際には、そう言ってるのはおまえだけなんだが
確かに悔しそうに勝ち誇っているシュールな姿だねw
デフォルトの名無しさん (ワッチョイ 6ab3-b3y3) [sage] 2018/10/22(月) 23:25:34.63:o0mVKFY/0

> そうか、847にアホとヴァカって書いてあるのか
> 実際には、そう言ってるのはおまえだけなんだが

ヴァカで検索
> あ、おまえ間違えたの? アホとヴァカしかやらない間違いだなw
> アホw ヴァカwww
> アホとヴァカを認めやがったw
849-850 は指摘なので省略

> 自分にお前だけとかかなりシュールな姿だねw
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/23(火) 02:12:44.79:hcGdXqLuM
飽きないねぇ・・・
デフォルトの名無しさん (ワッチョイ ba80-JSR1) [sage] 2018/10/23(火) 03:28:29.69:MMiE9qLz0

色々違う
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/23(火) 12:00:30.24:cKF5Z2eR0
C言語でLinuxのdmesgやffmpegのログのような着色された分かり易いログ出力ができるライブラリってありますか?
[YYYY-MM-DD hh:mm:ss.ss] INFO: creating some file...
のような形式がいいんですけど、Cだと自作するしかないですかね?
デフォルトの名無しさん (アウアウカー Safb-LYDX) [sage] 2018/10/23(火) 12:27:40.24:SzZ0Y41Da

標準ライブラリにはない
git漁ればあるはず
でもそのぐらいなら自分でチョロっと書けば終わる
デフォルトの名無しさん (アウアウエー Sae2-XHS6) [sage] 2018/10/23(火) 12:33:21.57:9ghnGYJ4a
色だけだったら制御コード挟むだけでかなり直接的な操作だから、ライブラリ要らんと思うよ
デフォルトの名無しさん (ワッチョイ 4acb-nBLa) [sage] 2018/10/23(火) 21:42:50.09:/OGOSsnj0

ヴァカと書いてあるのを血眼で探したのか
ご苦労だったな

で、誰か「自分にお前だけ(ry」とかテレパシーで話しかけてきたのか
なるほど精神科の医者じゃなく患者だな
精神分裂病の陽性症状で幻聴がひどいようだな
デフォルトの名無しさん (ワッチョイ 6ab3-b3y3) [sage] 2018/10/23(火) 21:55:22.05:AzbdbLNL0
血眼?
検索機能も知らんのか w
デフォルトの名無しさん (アウアウウー Sa9f-Egl2) [sage] 2018/10/23(火) 22:50:27.85:PGQOpxAMa

サンプル書いてやったぞ

#include <stdio.h>
#include <time.h>
#define D(fmt, ...) \
do { \
struct timespec _ts_; \
struct tm _tm_; \
char _tt_[128] = {0}; \
clock_gettime(CLOCK_REALTIME, &_ts_); \
localtime_r(&_ts_.tv_sec, &_tm_); \
strftime(_tt_, 128, "%H:%M:%S", &_tm_); \
fprintf(stdout, "\033[33m%s.%lu %s:%d %s " fmt "\033[0m\n", \
_tt_, _ts_.tv_nsec, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \
} while (0);
デフォルトの名無しさん (アウアウカー Safb-lmgi) [sage] 2018/10/24(水) 00:50:22.48:pNd6Tk0Ba
do/whileでくくる意味あんの?
デフォルトの名無しさん (ブーイモ MMd6-v9b0) [sage] 2018/10/24(水) 00:54:26.48:PjZwCPb8M
末尾のセミコロンがなければ意味あるけど、
セミコロンのせいで無意味になってるね。
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/24(水) 01:18:13.51:fzPXyYYOM
カラーコードをハードコーディングかぁ
やりますねぇ・・・
854 (ワッチョイ f364-qPjg) [sage] 2018/10/24(水) 01:42:48.00:+vpF9pgu0

ありがとうございます!
一点,おこがましい指摘なのですがfprintfの出力先はstderrのほうがいいのではないかと思います。
ログ出力はコマンドの出力とは別個にするべきなので。
854 (ワッチョイ f364-qPjg) [sage] 2018/10/24(水) 01:48:03.42:+vpF9pgu0

例えば改行を\x0aで固定するのは良くない方法であり、\nにすべきですが(これだとWindows向けにビルドしてやれば\0x0d\0x0aが出力されるようになる)
着色に関するエスエープシーケンスを固定するのは別に大丈夫だと思います。
ECMA-48/8.3.117などで標準化されてますし。
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/24(水) 02:18:53.70:fzPXyYYOM

ん、いや、マクロくらい使おうよって話
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/24(水) 03:09:04.52:+vpF9pgu0

ああ
「\e[33m」という記法それ自体ではなく
「33」という文字列を,例えばYELLOWマクロにする,というような意味だったんですね。
まあ確かにそうかも知れないです。
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/24(水) 04:01:46.93:fzPXyYYOM

いやいや・・・
それ丸ごとマクロにした方が楽でしょ・・・
ttp://https://stackoverflow.com/questions/3219393/stdlib-and-colored-output-in-c
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/24(水) 05:49:24.17:X/sBrfkw0

説明のための例だからそういう定義が分かりやすいとして、


こういうのを定義するときは、手段じゃなくて目的で定義する方がいいんじゃないかな。
ソース位置の強調をするために STYLE_LINE、タイムスタンプを強調するために STYLE_TIME、プロセスIDを強調するために STYLE_PID、みたいな。
それらを定義するときに YELLOW とか RED とか使う感じ。

#define STYLE_LINE(FMT) (ANSI_COLOR_YELLOW FMT ANSI_COLOR_RESET)

みたいにして、
fprintf(stdout, STYLE_TIME("%s.%lu") " " STYLE_LINE("%s:%d") " " STYLE_MSG(fmt) "¥n",

とか。
デフォルトの名無しさん (アウアウウー Sa9f-Egl2) [sage] 2018/10/24(水) 07:45:53.57:hBENxp+1a

;はミスだわ


サンプルなのでお好きに


好みかもしれんが、一行の中で色変えるとか見づらくないか?
そのフォーマットではファイル出力したくなくなるし

俺が色使うなら #define D(type, fmt, ...) でタイプ指定して
fprintf(stdout, COLOR(type) ... COLOR_END "\n",
とかで色変えるぐらいかな
デフォルトの名無しさん (ワッチョイ 66d5-7cZp) [sage] 2018/10/24(水) 09:48:15.70:X/sBrfkw0

例だから派手にしたけど、言いたいのは目的にちなんだ定義名にした方がいいってこと。
ログレベル毎に色を変えるなら、STYLE_ERROR、STYLE_WARN、STYLE_INFO とかさ。
デフォルトの名無しさん (アウアウエー Sae2-DAUi) [sage] 2018/10/24(水) 09:56:16.01:WhwEQaTDa
まあ抽象は正義だからな
デフォルトの名無しさん (ドコグロ MM3b-b3y3) [sage] 2018/10/24(水) 19:57:27.64:a4OXlgOjM
正論と同じであまり振りかざされても実務では面倒なだけ
とか正直ウザって思うわ
デフォルトの名無しさん (アウアウウー Sa9f-L0SM) [] 2018/10/24(水) 20:20:46.99:k2aW8IHEa
cursesライブラリは使えないなかな?
デフォルトの名無しさん (ワッチョイ f364-qPjg) [sage] 2018/10/24(水) 20:56:00.65:+vpF9pgu0
ていうかログのフォーマットってCでは標準化されていないのね、SUS含め。
Javaのlog4jやPythonのloggerみたいなものがあれば 一番嬉しいんだけどね
デフォルトの名無しさん (スッップ Sd8a-Iuwz) [sage] 2018/10/24(水) 21:31:34.66:0y0LlX3od
C初心者です、よろしくお願いします
ubuntuのvimでしこしこ書いてgccでコンパイルしています
CでIDEを使ってみたいのですがオススメありましたら教えてください
仕事ではJavaでEclipseを使ってるのですがCで使ってみたらいまいちピンと来ませんでした
やはり皆さんVisualStadioとかVSCodeあたりでしょうか?
デフォルトの名無しさん (ワイモマー MM8a-e2v7) [sage] 2018/10/24(水) 23:14:58.20:GbRp+dd6M
そうですね
ぜひ使ってみて下さい
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/25(木) 09:43:50.32:hw/Q19JUa

ないけどUNIXで昔からsyslog使われてた。というかそれがあったせいで他のログ出力ライブラリが広まらなかったのかも知れない。
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/25(木) 10:55:57.05:OLog262Fa
ログ出力も奥が深いよな。
大量かつ高速が条件だとなかなか悩む
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/25(木) 12:17:11.73:3CeE+Pyi0
最近はログをDBに格納している
デフォルトの名無しさん (JP 0H19-+toU) [sage] 2018/10/25(木) 15:07:02.91:UNvjysmaH
DBのログは?
デフォルトの名無しさん (ワッチョイ 9764-Ed1r) [sage] 2018/10/25(木) 15:27:49.50:R/0gSUq30
syslogは日付がISOに従ってないのがちょっと嫌だな。
[YYYY-MM-DDThh-mm-ss,ssZ] LOGLEVEL: some messages.
こんな感じがいい
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/25(木) 15:40:47.48:hw/Q19JUa
rsyslogdだと設定できなかったっけ?
デフォルトの名無しさん (ドコグロ MMcf-YOnW) [sage] 2018/10/25(木) 17:56:49.79:zmVgc+jlM

大量⇒高速に処理が必要だから、その条件は大体セットだろ
それにプログラムが異常終了してもログが欠落しないとかの条件がつくと難易度が更に上がる
デフォルトの名無しさん (ワッチョイ 9764-g60c) [sage] 2018/10/25(木) 18:37:09.60:R/0gSUq30
うーん。素人考えなんだけどfprintf()関数を呼び出したり,その中で__FILE__マクロ変数を展開したりするのって
そんなにコスト掛かる動作じゃないよね。
いくら大量の処理とは言え,ログを出力しただけで影響がでるような厳しい環境ってそうなくない?
そしてそもそもそんな環境でログ処理ではないメインの処理って動くの?
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/25(木) 18:46:33.19:s6Ph9fEn0

マルチプロセスやマルチスレッドだったりすれば排他も必要だし、fprintf 使っただけだとプロセスの突然死なんかではバッファがフラッシュされず失われ、一番欲しい落ちる寸前の情報が欠けかねない。
小まめにフラッシュしたらそれはそれで性能の問題が出る。
奥が深いと思うよ。
デフォルトの名無しさん (アウアウウー Saf1-6HWJ) [sage] 2018/10/25(木) 23:51:29.92:GsCjxORea

ああ、過剰な例だったか


あの例は抽象化ではないけどな
まあ例だから深くは言うまい
デフォルトの名無しさん (アウアウウー Saf1-6HWJ) [sage] 2018/10/26(金) 00:21:48.90:7237jhqNa

どの程度の性能を求めてるか次第だと思うよ
時刻取得でも clock_gettime と gettimeofday でうるさく言う人もいるしね

トレースログみたいに高速かつ大容量を考えるなら
ログがN件入るバッファを複数持っておいて
情報は基本バイナリで登録、ローテート時にファイル書き出し、
別途パーサーを作る、とかかな

まあそこまでする必要のあるソフトなんて稀だろうけど
デフォルトの名無しさん (ワッチョイ 5b30-7TBo) [sage] 2018/10/26(金) 09:13:38.45:hAbqlzFH0
ポインタをややこしくしてるのは
int* a;
の a がポインタ変数で
a[10]
という配列がある時、a と書くだけで配列の先頭アドレスの別の書き方として許されてるがいけないんじゃないのかな?って思ったんだけど合ってる?
配列の先頭アドレスは常に&a[0]って書くようにするようにすればポインタのごちゃごちゃって解消されない?
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/26(金) 09:51:00.93:2eu7c7Ria
Cだったら配列なんてものがあると思わん方がいいかもね
入門書的にはポインタより配列の紹介が先に書いてあったりするが、確かに問題はある。
デフォルトの名無しさん (ブーイモ MMbf-+toU) [sage] 2018/10/26(金) 10:26:55.40:8auh1e/NM

あと、p[i] も禁止して、*(p+i) を強制しないとだめ。
デフォルトの名無しさん (ワッチョイ 1323-7TBo) [sage] 2018/10/26(金) 10:54:29.59:cduwye+60

そのへんはシンタックスシュガーというよりは
たまたま結果的に同じものを指している 程度だし
原理原則を省かず丁寧に覚えていくしかないのでは
デフォルトの名無しさん (ワッチョイ 7312-SUE8) [sage] 2018/10/26(金) 11:21:53.96:E0U+wNaz0
違う
違うナァ

機械語→BASICのころには
「変数って何だ?!!」として変数なる概念をなかなか理解できなかったやつがいた……
と言う話を聞いてる

今の初心者の一部もなじめないヤツが一定数いる

言ってしまえばC言語は「変数指向」のプログラミング言語だ
オブジェクト指向や関数型に並び立つような、な
気付いてないが現代プログラミング言語は「変数指向」で出来てる
そしてどんな思想であろうとどんだけ説明してもその概念の片鱗すら理解出来ないヤツはいる

なので「変数」概念の理解に原理原則なんて存在しない
一発で理解出来るか素直に受け入れるかのどちらかしかない
それ以上説明しても意味が無い、という人物は少数だがいる
これはしょうがない
デフォルトの名無しさん (ワッチョイ c3e7-t6cX) [sage] 2018/10/26(金) 12:12:26.16:k/2ANTBE0
なんかの本に
int *a;
と宣言してあったら、式の中で
*a
と書かれたものが整数であると的確に説明してあった。
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/26(金) 13:39:36.53:T+aWo9i70

それが分かりやすいかはちょっと微妙じゃね。
int i; ならその領域は確保されてるけど、int *a; と宣言した *a は型としては i と同じだけどそのままで i と同じように使えるわけじゃないし。
ポインタで迷うレベルに通じる話じゃなさそうだし、これが通じるならポインタで迷ってないんじゃね。
デフォルトの名無しさん (ワッチョイ 9764-Ed1r) [sage] 2018/10/26(金) 14:13:47.90:ScQN6FWl0
じゃんね?
デフォルトの名無しさん (ワッチョイ 9764-Ed1r) [sage] 2018/10/26(金) 14:14:23.54:ScQN6FWl0
あ んじゃね か。
馬鹿だった。
デフォルトの名無しさん (アウアウウー Sa6d-eYkk) [sage] 2018/10/26(金) 15:09:00.24:WWw+Yxena

マシン語でもレジスタが変数みたいなもんだろ
デフォルトの名無しさん (スプッッ Sd9b-UHBe) [] 2018/10/26(金) 17:09:00.87:JLzES5S7d
これを実行するときに、argcに3が入っているとsegmentation faultとなってしまうのですがなぜだかわかりますか?
OSはopensuseでコンパイラはccです

#include <stdio.h>
#include <string.h>

int main(int argc,char *argv[])
{
int cmp=0;
char *s1=argv[1],*s2=argv[2];
cmp=strcmp(s1,s2);
if(argc!=3){
fprintf(stderr,"usage:%s[string1][string2]\n",argv[0]);
return -1;
}
if(cmp<0){
printf("%d : %s\n",strlen(s2),argv[2]);
}
else{
printf("%d : %s\n",strlen(s1),argv[1]);
}

return 0;
}
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/26(金) 17:14:58.46:8JGFizbaa

argc調べる前にstrcmp()するのは変だろう。
デフォルトの名無しさん (ガラプー KKa3-XSGY) [sage] 2018/10/26(金) 17:17:49.51:BF6Z7BaaK
組み込みでsicpて読む価値あんの?
デフォルトの名無しさん (スプッッ Sd9b-UHBe) [] 2018/10/26(金) 17:21:54.90:JLzES5S7d

それを直したらsegmentation faultしなくなったんですけど、理由が知りたくて…
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/26(金) 18:06:31.80:XW9xoDKGa

たとえばargv[2]が空だったらstrcmpの引数は何になるんだという
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/26(金) 18:16:18.06:T+aWo9i70

argc が 3 なら argv[2] は何か入ってるだろ
デフォルトの名無しさん (ブーイモ MMbf-+toU) [sage] 2018/10/26(金) 18:20:05.25:pYWWPyQzM
どうでもいいけどargvが3じゃなきゃいけないのにそのusageはどうよ
デフォルトの名無しさん (ワッチョイ eb72-UHBe) [] 2018/10/26(金) 18:25:03.95:HaLyiKNA0

なるほどです
理解しました

これではよくないんですか?
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/26(金) 18:25:43.74:8JGFizbaa

引数がなかったり一つだったりした時に先に無条件にstrcmp()をしてしまうと両方または一方が不定値やNULLになるので落ちたり変な動きになったりする。
デフォルトの名無しさん (ワッチョイ eb72-UHBe) [] 2018/10/26(金) 18:28:06.65:HaLyiKNA0

詳しい説明ありがとうございます
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/26(金) 19:03:31.73:T+aWo9i70

え、その問題はもう直してあって、 は直す前のコードで argc が 3 だと落ちたけどなんで?って話なんだよね?
デフォルトの名無しさん (ワッチョイ eb72-UHBe) [] 2018/10/26(金) 19:42:46.18:HaLyiKNA0

すみません間違いました
3以外が入ってるときです
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/26(金) 20:16:13.66:XW9xoDKGa
main(void)の場合もメモリ上のどこかにargvが入ってるだろうか?
デフォルトの名無しさん (ブーイモ MMf3-+toU) [sage] 2018/10/26(金) 20:46:48.73:TAH5LWiNM

[hoge]はhogeが省略可能って表現
あとスペースちゃんと入れろよ
デフォルトの名無しさん (ワッチョイ 9764-g60c) [sage] 2018/10/26(金) 21:08:53.88:ScQN6FWl0
みんな知ってるかもしれないが
[--foo]で--fooオプションが省略可能だということはかなり広範な決まりで,
POSIXに始まりGNUプロジェクトやPythonのインターフェース規格でも取り入れられてる。
デフォルトの名無しさん (アウアウウー Saf1-6HWJ) [sage] 2018/10/26(金) 22:48:54.99:dAefMjKVa

そりゃいるだろうよ、と思って確認してみた
ubuntuだと環境変数の近くにいるね
#include <stdio.h>
#include <stdlib.h>
int main(void) {
char *c = getenv("PATH");
while (--c != NULL)
if (!strcmp(c, "hoge")) {
printf("%s\n", c);
while (++c != NULL)
if (!strcmp(c, "foo")) {
printf("%s\n", c);
return 0;
}
return 0;
}
return 0;
}

$ ./a.out hoge foo
hoge
foo
デフォルトの名無しさん (アウアウウー Saf1-6HWJ) [sage] 2018/10/26(金) 22:54:36.13:dAefMjKVa

これだな
ttp://https://ja.wikipedia.org/wiki/Man%E3%83%9A%E3%83%BC%E3%82%B8
ttp://https://qiita.com/aosho235/items/0f2b73d08eb645c05208

俺が生まれる20年以上前からあるとか感慨深い
デフォルトの名無しさん (ワッチョイ 9764-g60c) [sage] 2018/10/26(金) 23:22:14.01:ScQN6FWl0

ちょっと違うぞ。
ttp://http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html
こういうの。
デフォルトの名無しさん (ワッチョイ bb80-+toU) [sage] 2018/10/26(金) 23:22:24.86:gi8K36IH0
man読む習慣があれば自然と身につくのに
デフォルトの名無しさん (ワッチョイ 457b-gsMg) [sage] 2018/10/26(金) 23:50:26.20:vTWFo6xp0
ナウなヤングはinfo使ってるから…
デフォルトの名無しさん (ワッチョイ 9764-Ed1r) [sage] 2018/10/27(土) 00:13:55.83:BbyQQXdF0
infoの使い方分からないマン
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/27(土) 00:36:12.58:QSCXw9iYa
]で次のページに行く
デフォルトの名無しさん (アウアウウー Saf1-6HWJ) [sage] 2018/10/27(土) 00:49:36.02:If2PGrjfa

POSIXに始まりってのは歴史的な話じゃなくて規約的な話だったか
でもここまで規約が決まってたのは知らんかったわ
デフォルトの名無しさん (ワッチョイ eb72-UHBe) [] 2018/10/27(土) 01:29:30.14:x+9raBkh0

そういう意味があるんですね
ありがとうございます
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 13:15:19.86:8fc2vBvs0

違うぞ。

その世代(ベーマガ世代)で変数が理解出来なかったのは、数学的素養がなかったからだ。
数学で「変数」が導入されるのは「方程式」からで、それ以前の小学校の算数は全部「定数」で出来ているから、
その世代の『小学生』はそこに戸惑っただけ。
機械語/BASICとかは関係ない。

高一で物理を始めると、三角関数が出てきて戸惑うようなもの。
学校によっては高二から始めるらしいが、その場合は戸惑うことはないだろ。

或いはアフィン変換も同じ。
あれも数学で回転行列を習った後なら容易いが、
『小学生プログラマ』にやらせようと思ったら、まず座標を教えて、その後に…と色々必要だろ。

数学的素養がないと、プログラミングは理解出来ないんだよ。
小学校教育に取り入れた馬鹿共は、プログラミングが出来ないから、それが分からないだけ。

○○が分からない、と言う奴は大概、数学の素養がないか、そもそも全てを『暗記』で済ませてきたタイプだ。
(世の中大概それでどうとでもなるのも事実ではあるが、)それではどうあがいてもプログラミングは上達しない。
頭を切り換えて、全てを『理解』する癖を付けることだね。そしてまず数学を勉強すべきだ。
そうしないとただのコピペ(写経)マンになってしまう。
(はっきり言って昔のベーマガ世代も実際やっていたのは写経でしかないし)

色々理解したら、なるほどCは文法的にも構造的にも美しく出来ているし、
色々無駄がないからこそ、いまだに現役で使われ続けていることが理解出来るようになる。
ただし、分かりやすいわけではないので、俺は初心者はCから始めるべきではないと思うがな。
デフォルトの名無しさん (ワッチョイ 7312-SUE8) [sage] 2018/10/27(土) 15:37:40.83:BkFfYRiz0

中学の授業では便宜上は今まで変数を習ったことの無い中学なりたてホヤホヤのガキに変数を教えるんだよな?
なのになんでそれで新中学一年生は変数を理解出来るんだ?
素養が無いのにも関わらず変数を授業で教えると理解できるんだぞ?
不思議じゃないか?
デフォルトの名無しさん (ワッチョイ 5761-JHIh) [sage] 2018/10/27(土) 15:55:34.30:IeSn2Jid0
ベーマガのゲーム入力して
兄「ここの数字増やすと自機数が増えるんだよ」
自分「へぇ」

兄「ここの P=P-1を消すと死んでも自機数減らないんだよ」
自分「へぇ」

当時小学3年ごろ。
これで変数と言うのを理解したわ。
デフォルトの名無しさん (アウアウカー Sad3-S3gW) [sage] 2018/10/27(土) 15:59:43.62:YzjvNBrca
どういう順番でも抽象的な理解はできると思うよ。本当に「理解」なのかわからんけど。
でも数学が先じゃないと時間の無駄という気はする。
デフォルトの名無しさん (アウアウカー Sad3-S3gW) [sage] 2018/10/27(土) 16:01:45.78:YzjvNBrca
線形代数はプログラミングと同時にやってもいいと思うわ。紙の上の操作はちょっとつまらん
デフォルトの名無しさん (ガックシ 06af-UHBe) [] 2018/10/27(土) 17:08:17.28:pWQGtgcn6
線形代数とプログラミングってなんの関係があるん?
最近、プログラミング始めたからよくわからんのよな
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/27(土) 17:14:52.39:NY1AcmJf0
>P=P-1

プログラム上と代数学上の記法の違い、最初面食らわなかったか?
デフォルトの名無しさん (ブーイモ MMf3-JP9K) [sage] 2018/10/27(土) 17:36:20.97:DmauAY/3M

変数にしろ関数にしろ教え方がアホすぎて全然理解できてなかったわ
単に計算できるだけだった

後にプログラミングやるようになって何で学校の数学ではあんな馬鹿な教え方をされたんだろうかと思ったわ
デフォルトの名無しさん (ワッチョイ 5b30-7TBo) [sage] 2018/10/27(土) 17:38:52.04:Ttfv0KRj0
やねうらおとか小学生の時にはもう大学の数学をやっていたというが・・・冗談なのか本当なのかわからんがとんでもねぇプログラマなのは確かだからな・・・
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 17:43:25.28:8fc2vBvs0

だからお前は猿のままなんだな、納得した
デフォルトの名無しさん (ワッチョイ bb80-+toU) [sage] 2018/10/27(土) 17:53:34.74:zu36BJom0
代入に=を使ったFORTRANの罪は大きい
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/27(土) 17:59:56.52:p3Z91K38a
P=P-1みたいなのが解らない人は関数型言語に行けば良いんじゃ無いかな。
代数学に比較的近い。
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/27(土) 18:06:00.09:p3Z91K38a

プログラミングに必ずしも数学が得意で有る必要は無いとは言われてるけど、数学得意な人がプログラミング出来るようになる事が多い気はする。
どちらも例外はあるけれども。

少なくともプログラミング関係の専門書って大学数学前提が多い。
前提じゃ無いのはわざわざ高校数学で出来るとか書いてるし。
デフォルトの名無しさん (ワッチョイ 530a-7TBo) [sage] 2018/10/27(土) 18:16:50.52:C9jhaecu0
推論型言語でP=P-1
デフォルトの名無しさん (ガックシ 06d9-e7ji) [] 2018/10/27(土) 18:24:00.38:HWNtkJs26
1〜12月を入力し、入力した月の日数を表示する。
これを論理演算子で表示しろという。
else if( month == 3)
{ printf("3月は31日です\n")}
というのを作ったが不可。
論理演算子を使っていないからという。
論理演算子をどう使えばいいんですか。
デフォルトの名無しさん (ワッチョイ bb80-+toU) [sage] 2018/10/27(土) 18:28:29.79:zu36BJom0

month == 3 && printf("3月は31日です\n");
とか?w
デフォルトの名無しさん (ワッチョイ bb80-+toU) [sage] 2018/10/27(土) 18:31:23.89:zu36BJom0
; も || に置換可。
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 18:38:10.74:8fc2vBvs0

> ガックシ
先生に聞けよマジで
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/27(土) 19:17:35.26:5acUAORp0

m を月としたら
d = (15657907 >> (m - 1) * 2) & 3 | 28;
とか?
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 19:24:28.76:8fc2vBvs0

それはビット演算子、そして+、あと普通は0x*****で書く
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/27(土) 19:29:22.72:5acUAORp0

あぁ、そうか。
てことは単純に 30日になるもの 31になるものを || でまとめろって話か。
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 19:54:11.57:8fc2vBvs0

まあ普通はな。
ただそれ以前に、if文11個連ねて書くよりは…のはずだから、
普通は正しく動けばまずはよしで、それより断然いい書き方があるよね、となる。
いずれにしても先生に聞け、でしかないが。
デフォルトの名無しさん (ワッチョイ 3f9f-JHIh) [sage] 2018/10/27(土) 20:31:12.68:FFMC2/bw0
第三回バーチャルYouTuber人気投票リベンジ募集中(全287名、2018年10月27日〜)

あなたの好きなVtuberは?(一人十票)
ttp://https://script.google.com/macros/s/AKfycbzW_Er5wP6kI0ZNcmcZVA4UdlXPiernQqL4xG1dVv146T8LwGKZ/exec

・前回(2018/8/22)は不正投票が行われた為、投票を途中で中止させていただきました。大変申し訳ありませんでした。
・Googleフォームは標準仕様では不正投票が可能な為、改造して対策を行いました。
・2018/10/27時点でチャンネル登録数10,000人以上のVtuberを対象としています。
・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。
・一人十票です。(全287名の中からお好きなVtuber10名を選んでください。)
・このフォームに投票するにはグーグルアカウントでログインする必要はありません。
・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。
・今回も1,000人の方が投票するまで継続します。

なお投票結果はスプレッドシートにリアルタイムで表示されるようにしました。
また【概要】と【詳細】でシートを分けております。
ttp://https://docs.google.com/spreadsheets/d/1qvhqRdbbOFGQ2veqrnQmaAXIA79xTAANKUKa3HEUUC0

▽過去の投票結果はこちら

第二回バーチャルYouTuber人気投票結果(2018年6月5日〜8月6日、全投票数1,000票)(スプレッドシート)
ttp://https://docs.google.com/spreadsheets/d/1HqVp41DzLXPSuarWKkqNFZRyL20-nkMF5O5kkeEmqnA

第一回バーチャルYouTuber人気投票結果(2018年5月7日〜5月30日、全投票数1,000票)(スプレッドシート)
ttp://https://docs.google.com/spreadsheets/d/1uaKoB3pJQHgC9VEkvg74v9OaSNW3Zvccr91mPN1lt5k


tyjty
デフォルトの名無しさん (ワッチョイ 0f80-JP9K) [sage] 2018/10/27(土) 22:39:08.44:aNTv90Ss0

…お前の中ではif文で書いて当然の処理なのか
デフォルトの名無しさん (ワッチョイ 7312-SUE8) [sage] 2018/10/27(土) 22:39:25.58:BkFfYRiz0

中学生にちょっと教えるだけで変数を理解するのは
大抵の人間には「変数」を理解する資質が生まれながらに備わってるからさ
要するに生得論だよ
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/27(土) 23:26:48.51:tUxhH/wza

2月は何日で出すんだ?
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/27(土) 23:30:49.74:NY1AcmJf0
論理演算子なんて要求がなければ、配列作ってテーブル参照にしてしまう
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 23:55:00.74:8fc2vBvs0

普通は948の通りだろ。
そこを論理演算子なのだから、論理演算子の練習だろ。
超初心者だってことだよ。
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/27(土) 23:56:21.90:8fc2vBvs0

それだとお前が今現在も猿と同程度なのと矛盾するだろ
デフォルトの名無しさん (ワッチョイ 5b9f-7TBo) [] 2018/10/28(日) 00:11:48.31:D9Gt7gmT0

m を月の数として
printf("%d月は%d日です。\n", m, m == 2 ? 28 : (30 + ((m & 1) ^ (m >= 8 ? 1 : 0))));
なんてのはどうかな。年がわからないので2月は28日固定だが。

バグの温床になりそうなので普通はこんな複雑なの書かないが。
デフォルトの名無しさん (ブーイモ MMa1-JP9K) [sage] 2018/10/28(日) 00:20:30.07:oSIXYZ/dM
書かないのはバグの温床だからじゃなくて
他人に意図が伝わらないオナニーに過ぎないからだぞ
デフォルトの名無しさん (ワッチョイ 5b9f-7TBo) [] 2018/10/28(日) 00:23:07.12:D9Gt7gmT0

あー。まあそういうことでもあるか。
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 00:55:30.03:0+vzkOx80

お前ら初心者にも分かる言い方を思いついた。

・コードからお題に戻せるコードを書け

なんだよ。
初心者は「お題○○を実現するコードは?」ばかりやってるから、「お題→コード」の変換ばかり考えるけど、
実際に重要なのは逆で、「コード→お題」の変換なんだよ。
今回の例で言うと、お題は

・月を与えて日数を得る関数

だが、これが重要なのではなくて、

・この関数は、月を与えたら日数が得られる

とコードからお題に『逆変換』出来ることが重要なのであって。
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 04:41:04.83:vBzuIBdia
それで行くとクイックソートとか最早ムリぽ。

コメント使わ無いのかな。。。
他にも命名規則とか、そう言うので推測し易くしてるもんでしょ。
理想だけじゃ何も書けなくなる。
デフォルトの名無しさん (ワッチョイ 530a-7TBo) [sage] 2018/10/28(日) 05:50:13.54:Lt7UAQQy0
殺人的にくだらん
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 08:48:10.56:0+vzkOx80

コメント自体が既に次善策なんだよ。
可能であれば、コード見たら分かることを目指すべき。

クイックソートが意味不明なコードだとも思わないけど、
あの手の「末端の」関数は適切な名前を付ければそれで問題なくなる。
つまり、sort()なら、「ソートする」と分かり、使う分に支障はないだろ。
数学関数の sin() とかも、実際の中身なんて気にしてないだろ。これと同じ。
問題は、

int d0 = (15657907 >> (m - 1) * 2) & 3 | 28; // 940

int d1 = m == 2 ? 28 : (30 + ((m & 1) ^ (m >= 8 ? 1 : 0))); // 951

では、ぱっと見意味不明だろ。
だから最低限、「関数として切り出して適切な名前を付ける」か、「コメントを付ける」かが必要になる。
これが上記みたいにベタでコメント無しで書かれてたら、殺すぞテメー、になるって話さ。
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/28(日) 11:51:08.52:W0+pPBsw0

こういうのどうすんの
ttp://https://ideone.com/FGqs1S
デフォルトの名無しさん (アウアウエー Sa93-S3gW) [sage] 2018/10/28(日) 12:06:15.31:/iW8vuMIa
ポッカント
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 12:53:44.56:0+vzkOx80

それはいつぞやのコードだろ。
末端の関数だから、適切な名前を付けた関数にすれば問題ない。
俺なら count_1_bits か get_nof_1_bits とかにする。
勿論そのコードがベタでコメント無しで書かれてたらアウトだ。

あと、戻り値は int にしておけ。
デフォルトの名無しさん (オイコラミネオ MM09-nh9x) [sage] 2018/10/28(日) 12:57:22.68:lZrPQQ03M

どんなコメント付けるの?
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 13:29:34.14:0+vzkOx80

// count nof 1 bits
デフォルトの名無しさん (スプッッ Sd9b-UHBe) [] 2018/10/28(日) 13:45:43.40:Bm6vOY0Hd

かけるようになるのも大事だけど、それよりもまず読めるようになれってこと?
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 13:51:17.06:0+vzkOx80

1年後に読んでも分かるコードを書け、ということ。
デフォルトの名無しさん (ワッチョイ e33f-7TBo) [sage] 2018/10/28(日) 14:44:33.68:lBJoUXxI0
963にそのアドバイスはまだ早い
デフォルトの名無しさん (ワッチョイ 5761-JHIh) [sage] 2018/10/28(日) 15:00:37.51:6j1kxIYb0
// なぜこのコードが動いているのかわからない

// 以下、あるはずのないコード群でお送りします。

/* 俺のせいじゃない */

//ここに来ることは絶対にない
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/28(日) 15:05:52.81:2a8cvg/h0
もうちょっと読み物風に書いて行けば最後まで呼んでくれるかも知れない
(つづく)なんて書くと、続編への熱いメッセージをもらえるかも
デフォルトの名無しさん (ワッチョイ 5b9f-7TBo) [sage] 2018/10/28(日) 15:39:42.29:D9Gt7gmT0
冒険活劇飲料サスケ


    つづく
デフォルトの名無しさん (ブーイモ MMbf-gZ8p) [sage] 2018/10/28(日) 17:45:31.27:fHxT9uJhM
中学生向けみたいなお題に噛み付き過ぎで草
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 18:05:27.14:vBzuIBdia
逆にちょっと高度になるとみんなダンマリ。
最近久しぶりに来たけど、昔のCスレはこんなんじゃなかった。。。
デフォルトの名無しさん (ブーイモ MM41-F79V) [sage] 2018/10/28(日) 18:11:47.40:Z7LZHjRuM
じゃあまた10年後にいらっしゃるのをお待ちしてます
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 18:50:49.19:vBzuIBdia
もっと悪くなってるわw

正直、ここの住民がどの程度まで作れるのか分からん。
以前のお題は無視されたから、それ以下だとは思うが。。。
私もたいして書けるわけでもないのに。
(むしろ以前の方が書き込み難かった)
デフォルトの名無しさん (ワッチョイ 614f-SUE8) [sage] 2018/10/28(日) 18:51:32.36:0+vzkOx80

ここ数ヶ月、何故か超初心者が沸いてる。
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/28(日) 18:53:04.74:2a8cvg/h0
高度なお題をお願いします
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/28(日) 18:57:13.59:2a8cvg/h0
C言語相談室(上級者専用)
ttps://mevius.5ch.net/test/read.cgi/tech/1519998483/

C言語上級者スレ
ttps://mevius.5ch.net/test/read.cgi/tech/1519750371/

こういうスレもあるし、そちらを覗いてみたら?
私は見てないので、内容は保証出来ませんが
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 19:12:09.42:vBzuIBdia

そっちもチェックはしてる。(ほとんど更新されないが)
こっちでも入門書程度のコードは割と出てたと思うんだが、最近全然出ない。
デフォルトの名無しさん (アウアウウー Sa5d-hDoO) [] 2018/10/28(日) 19:13:01.60:HCT7bRsva
お題はお題スレで。

プログラミングのお題スレ Part12
ttps://mevius.5ch.net/test/read.cgi/tech/1538096947/
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 19:20:12.29:vBzuIBdia

高度過ぎもしないが。。。
デフォルトの名無しさん (アウアウカー Sad3-jr42) [] 2018/10/28(日) 19:25:59.68:vBzuIBdia

それもチェックしてたわ。
済まんかったね。
うーん。。。
なんて言うのかな。。。
こう言うの作ってて、ここが上手くいかないみたいな質問自体が来ないのかな。
最近だとpythonスレとかが来てる方か。

うん分かった。
もうロムるわ。
デフォルトの名無しさん (ワッチョイ e33f-7TBo) [sage] 2018/10/28(日) 19:44:14.25:lBJoUXxI0

高度な話がしたければすればいいだろう
みんなダンマリなんて嘘こいてないで

てめーがコード1つ示さない低劣野郎なくせに
スッパマンみたいな威張り方してんじゃねえよbogus
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/28(日) 19:45:11.99:W0+pPBsw0
お題なんてなんでもいいじゃん。
これだっていい。
最短、最速、なんでもいいからコードでアピールしてみたら。
デフォルトの名無しさん (ブーイモ MMbf-JP9K) [sage] 2018/10/28(日) 20:31:14.33:3WxjgzdCM
とっくに結論出てる事にすら気づいてない知能の奴が高度な話題とか何とか言ってるのかw
デフォルトの名無しさん (ワッチョイ 5b9f-7TBo) [] 2018/10/28(日) 22:02:27.19:D9Gt7gmT0
次スレ

C言語なら俺に聞け 149
ttps://mevius.5ch.net/test/read.cgi/tech/1540731704/
デフォルトの名無しさん (ワッチョイ 23f9-DNnX) [sage] 2018/10/28(日) 23:07:01.51:o1iiiQzo0

本人か?
あれは質問スレでお題なんてそもそもスレ違いであること、お題としても興味をそそられないつまらない内容であること、1日レスが付かなかった程度でその後の痛々しい反応など、スルーされる要素てんこ盛りで当然の結果だろう。
◆QZaw55cn4c (ワッチョイ 9360-278X) [sage] 2018/10/28(日) 23:49:52.62:0CAv0Ngu0

>1日レスが付かなかった程度でその後の痛々しい反応
こういうのは、何度となくやって、手ひどく罵倒されでもしないと、なかなか身につきませんね
スルー力も大事だし、スルーされることに耐える能力も必要です…
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/28(日) 23:53:10.11:2a8cvg/h0
やはりそうだよね
どこが問題なのか、よく分からないでいた
デフォルトの名無しさん (ワッチョイ 0781-HyCk) [sage] 2018/10/29(月) 00:28:01.98:OYdZGMPI0
あとちょっとで終わるから、埋め草
設問が今一分からないんだよね
合計を求める←これは問題の範囲にはないよね
1から順に足していって140まで、
その答えを順に表示しろって事かな?まさかね
合計値を文字列に変換する←何進数か分からない
最後に4桁ってあるから多分10進数でいいんだろうけど
16進数なのかもしれない
(4〜7行目は意味が不明なので読み飛ばした)
保存場所の間違いって何?

客からこんな依頼きたら、頭が変になりそうw
デフォルトの名無しさん (ワッチョイ 73d5-nh9x) [sage] 2018/10/29(月) 01:57:31.15:X3/iEvqW0
除算とその余りで桁を分離できる大発見をしたので、それを解説するためのお題を出しただけでしょ。
情報処理勉強してる学生かな。
プログラム的に役に立つ発見ができて良かったじゃない。
おれも中学生くらいのときにじゃんけんの勝ち負け判定は剰余を使うとシンプルに書ける大発見をして心踊ったもんだ。
デフォルトの名無しさん (ワッチョイ 1d80-SUE8) [] 2018/10/29(月) 21:32:29.11:JGxixszg0
ttp://https://www.google.co.jp/search?q=140*%28140%2B1%29%2F2
なにもせずとも表示できたわ

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

新着レスの表示

2ch勢いランキング アーカイブ プログラム板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したアーカイブです。削除についてはこちら