◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1589120427/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん (ワッチョイ 76ba-P5bm)
2020/05/10(日) 23:20:27.99ID:Z3WQBr9X0
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/

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

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

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

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

※前スレ
C言語なら俺に聞け 154
http://2chb.net/r/tech/1578997950/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2デフォルトの名無しさん (ワッチョイ 6aad-48kr)
2020/05/11(月) 03:59:02.63ID:OH0s44mS0
1乙
3◆QZaw55cn4c (NZ 0Ha2-EltK)
2020/05/11(月) 19:26:21.66ID:X9lKtqAVH
>>1おつかれです
4デフォルトの名無しさん (アウアウエー Sae2-jgrQ)
2020/05/12(火) 10:12:47.53ID:4WwqN1hQa
for(int i = 0, a = 2; i < 10; ++i) ...
同じ型じゃなくて
Cで
for(int i = 0, long a = 2; i < 10; ++i) ...
観たいに描く方法を教えて
5デフォルトの名無しさん (ワッチョイ bbca-BAqB)
2020/05/12(火) 10:50:24.38ID:0hJyWI8f0
>>4
{
int i;
long a;
for(i = 0, a = 2; i < 10; ++i) ...
}
6デフォルトの名無しさん (ワッチョイ 0b05-gIXh)
2020/05/13(水) 08:43:33.37ID:zPDRJ1n80
for文で++iって書くやつは過去の学習に縛られ惰性で生きている臆病者
7デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 08:47:34.01ID:OofdoMNm0
C++使いは前置がデフォ
8デフォルトの名無しさん (ワッチョイ 0b05-gIXh)
2020/05/13(水) 09:10:00.44ID:zPDRJ1n80
>>7
それを言っているんだ。 正しく自己を見つめ直せ
9デフォルトの名無しさん (ラクッペペ MM17-vl+H)
2020/05/13(水) 09:19:01.34ID:X+gtWrV6M
前置インクリメント VS 後置インクリメント
http://cpp.aquariuscode.com/preincriment-vs-postincriment
10デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 09:40:34.63ID:p9DOzuLsa
「値が使われる場合」

勝手に読み飛ばすな
11デフォルトの名無しさん (ワントンキン MM9f-6ngS)
2020/05/13(水) 09:45:38.32ID:koSNYmhvM
>>6
i++ と書くと未来に縛られちゃうの?
つか、
for (略;略; ++i) と
for (略;略; i++) に違いあるの?
12デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 10:12:38.54ID:JcjM8CgX0
C++はテンプレートと演算子オーバーロードの関係で前置で良い場合は全て前置にする。
13デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 10:48:26.58ID:OofdoMNm0
>>8
言ってる意味がさっぱりわからん
何が不満なんだ?
14デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:00:41.30ID:JcjM8CgX0
禿げ(C++の神)から前置にしろと御神託があった。
SA: 禿4 pp.982
15デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:01:29.69ID:JcjM8CgX0
いまどき小学生でも後置なんて使わんわ。
16デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:02:35.63ID:JcjM8CgX0
後置は幼女にのみ許される特殊な魔法。
17デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 11:17:23.83ID:p9DOzuLsa
http://hissi.org/read.php/tech/20200513/SmNqTThDZ1gw.html
18デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 11:21:16.85ID:JcjM8CgX0
4回書き込んだだけで2位かよ。
ム板はこれから青森サーバーと呼ぶ。
19デフォルトの名無しさん (ワッチョイ 4f19-2UuV)
2020/05/13(水) 11:35:12.85ID:J8c0WcWw0
スレタイ
20デフォルトの名無しさん (ワッチョイ cd01-oAke)
2020/05/13(水) 12:15:04.96ID:JcjM8CgX0
ムエタイがなんだって?
21デフォルトの名無しさん (ブーイモ MMe1-VBdI)
2020/05/13(水) 12:53:38.05ID:fSpTrz0hM
前置は不可分にしてしまった継続処理くらいにしか使いみちがない特殊な演算子だからのう
c言語的にどっちでもいい場合とりあえず前置にして論理バグのスルーを防ぐみたいなやり方あるかもしれない
22デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/13(水) 13:02:44.65ID:fKaVxvtm0
後置の方が好きw
23デフォルトの名無しさん (ワッチョイ c30e-gIXh)
2020/05/13(水) 13:39:26.80ID:OofdoMNm0
語順が名詞動詞で気持ちいい
24デフォルトの名無しさん (アウアウエー Sa93-EFvI)
2020/05/13(水) 14:27:42.65ID:A7nM0+Dla
for文の場合、インクリメントされるタイミングがブロックの末尾だから、後置の方が直感的な気がするね
25デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/13(水) 14:48:22.25ID:oWyvBIrOa
それは気のせい
26デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/13(水) 19:52:54.76ID:fKaVxvtm0
前置にしたときの言いようのない不安感
27デフォルトの名無しさん (ワッチョイ dbbd-wHYS)
2020/05/13(水) 21:32:12.94ID:+AdS1P590
C言語しか知らなくて、学びながらプログラムの作成にチャレンジしてるものです。
fopenについて教えてください。

fopen("wb")で開くとポインタ(ストリーム?)はファイルの先頭で上書きモード
fopen("ab")で開くとポインタ(ストリーム?)はファイルの最後で追記モード
ということを知りました。

既存ファイルを開き、先頭部分のデータの一部を上書き、且つ、末尾にデータを追加したいと考えています。
この場合は、どっちか片方で開いてfseekとかでポインタ移動してしまえば、 上書きも追加もできるのでしょうか?
それとも上書きしたあと、一旦fcloseをして開きなおさなければならないのでしょうか。

よろしくお願いいたします。
28◆QZaw55cn4c (NZ 0H13-RpJK)
2020/05/13(水) 21:49:53.34ID:k/cJlRBbH
>>27
fseek() で書きたい位置に移動して自由に fwrite()/fread() を使うだけで OK です。
fclose() は一番最後に一回だけでいいですよ
29デフォルトの名無しさん (ワッチョイ dbbd-wHYS)
2020/05/13(水) 22:07:53.87ID:+AdS1P590
>>28
どっちのモードで開いてもいいんですね。
また、fopenを2回使う場合も、fcloseは最後の一回だけでいいという訳ですね。
ありがとうございました。
30デフォルトの名無しさん (ワッチョイ df61-XfUa)
2020/05/13(水) 22:08:13.59ID:Gt6y73ao0
>>27
wは既存ファイルは0バイトに切り詰め、aは出力時はfseekが効かずに常に末尾に追加なので
既存ファイルはr+bで開いて、存在しない場合はw+bで作成するのがいいのではないかな
31デフォルトの名無しさん (アウアウエー Sa93-yXYh)
2020/05/14(木) 11:05:34.52ID:tvxDWcUoa
>>27
"ab+"
32デフォルトの名無しさん (ワッチョイ 7f2c-JcAG)
2020/05/14(木) 15:09:17.87ID:FSEZeoAj0
Ruby でやってみた

入力ファイル → 更新後
123456789 → abc456789xyz

filename = "test.dat"

# バイナリ読み書き両用
File.open( filename, "r+b" ) do |io|
io.write( "abc" )

io.seek( 0, IO::SEEK_END ) # ファイルの末尾から
io.write( "xyz" )
end

# 更新後のファイルを読み込む
File.open( filename, "rb" ) do |io|
puts io.read( nil )
end
33デフォルトの名無しさん (ワッチョイ c1ca-OQUA)
2020/05/14(木) 19:58:19.22ID:9ipBs7pO0
ruby ならきれいに書けるという主張でもないようだけど、誤爆?
34デフォルトの名無しさん (ブーイモ MM81-yPYG)
2020/05/14(木) 20:18:44.56ID:XsLKEuv3M
ム板で最も嫌われてる荒らしの一人。
懸命なruby布教のおかげで、rubyを覚えるとキチガイになるという通説を広めることには成功している。
35デフォルトの名無しさん (ワントンキン MM9f-3lOM)
2020/05/14(木) 21:06:40.98ID:4E7Wej8RM
感染者には触るな
36◆QZaw55cn4c (NZ 0H13-RpJK)
2020/05/15(金) 20:47:16.71ID:lPwkD6FRH
>>30
>aは出力時はfseekが効かずに常に末尾に追加

これは驚きました!

https://ideone.com/RG43Xw
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
abcdefgABC
$

https://ideone.com/T8QqyL
$ gcc -W -Wall fopen_a_mode.01.c
$ ./a.exe
ABCdefg
$

新しいことに気が付くようにしていただき、ありがとうございます!
37デフォルトの名無しさん (ラクッペペ MM17-0I9d)
2020/05/15(金) 22:12:47.57ID:drU906O6M
まんま教えて貰ったのに「気が付くようにしていただき」なんだな
38デフォルトの名無しさん (ワントンキン MM9f-3lOM)
2020/05/16(土) 21:22:39.21ID:P7eChC70M
この方はワザと炎上させる放火魔だからな
39◆QZaw55cn4c (NZ 0H13-RpJK)
2020/05/16(土) 22:07:40.72ID:JWSyjCc8H
>>38
失礼しちゃいますね!
私が着火したことはほとんどなく、むしろ買ってに周りが発火している、という気がするのですが?
私が着火した、という証拠はありますか?あるというのなら URL で示してください!
40デフォルトの名無しさん (ワッチョイ 2352-ri7+)
2020/05/16(土) 22:55:05.23ID:XDh9Q16+0
無自覚な分だけ尚更たちが悪い
41デフォルトの名無しさん (ワッチョイ 4f19-2UuV)
2020/05/16(土) 23:02:39.46ID:KaLdS6ES0
ruby布教者じゃなくてただのrubyアンチでしょ
布教なんかしてるように見えるの?
42デフォルトの名無しさん (ワッチョイ 7763-gIXh)
2020/05/16(土) 23:50:09.22ID:PLCktpMy0
定期的に書かないと、その名前すらみんな忘れ去るから
43デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:04:19.97ID:d4aDDKtR0
x[i][j]でx={0or1}を取る場合、全通りのx[i][j]を生成する方法はありますか?
44デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:06:02.61ID:d4aDDKtR0
>>43
x[i][j]を使った計算で全通りを比較したいです
45デフォルトの名無しさん (ワッチョイ 33da-7PPi)
2020/05/20(水) 18:28:24.79ID:2DX/1Ybo0
誰か質問の意味分かる人いる?
何がしたいのかさっぱり分からん
46デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:34:34.07ID:d4aDDKtR0
>>45
x[i][j]が変数の関数の最大値を求めたいんですが、全通りの計算をして最大値を求めたいです
47デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:37:19.29ID:d4aDDKtR0
ΣΣx[i][j]を含む関数です
48デフォルトの名無しさん (ワッチョイ 9719-qwq+)
2020/05/20(水) 18:41:23.97ID:p2AYPvOI0
全部計算して計算結果を比較して最大値を求めれば良いのでは?
質問の意図が見えない…

iとjの2重ループで全部計算させて結果をresult[i][j]に入れる
その後、もっかい2重ループして最大値を探す

そのまんまだけど…
49デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:49:12.44ID:d4aDDKtR0
i,jのサイズが2の時x[i][j]の組み合わせは
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0
……って続くと思いますが、この配列の中身の全組み合わせを生成したいです
50デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:52:54.48ID:d4aDDKtR0
あ、うえのΣの奴は間違いです
Σはありません
51デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/20(水) 18:53:34.24ID:d4aDDKtR0
>>50
あ、あります、ごめんなさい。。
52デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/20(水) 19:02:07.61ID:B13UAgz80
>x[i][j]が変数の関数の最大値

これからして、意味が分からない
xの型や関数の仕様について、ヒントもないのか
53デフォルトの名無しさん (ワッチョイ 9719-qwq+)
2020/05/20(水) 19:19:09.61ID:p2AYPvOI0
びっくりするくらいわからんわw
フーリエ変換だとかアフィン変換だとかそういうなんか最重要な情報出し忘れてない?
54蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdba-cUCP)
2020/05/20(水) 19:37:46.43ID:RKh8Mgj0d
普通に二重forループ使え。問題文がおかしい。問題がその文章のままなら、たぶん学校か会社を間違えてる。
55デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2020/05/20(水) 19:56:18.69ID:WJVU+U120
>>49
@x[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=0
Ax[0][0]=0、x[0][1]=0、x[1][0]=0、x[1][1]=1
Bx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=0
Cx[0][0]=0、x[0][1]=0、x[1][0]=1、x[1][1]=1
Dx[0][0]=0、x[0][1]=1、x[1][0]=0、x[1][1]=0

ここから値だけ取り出すとこうなる

0000
0001
0010
0011
0100
...

あとは簡単でただの二進数だから1重ループでその整数を1bitずつシフトしてマスクして代入すればいい
56デフォルトの名無しさん (ワッチョイ 6301-f9J/)
2020/05/20(水) 20:02:39.84ID:7PkXr7ui0
添字x2 + 値で合計 3bit の組み合わせか
57デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/20(水) 20:03:34.53ID:Dfazl3Afa
何のために二次元にしてるのかイミフ
値も0と1しか入れないなら
もっと簡単な構造にすればいいのに
58デフォルトの名無しさん (ラクッペペ MMb6-Zfss)
2020/05/20(水) 20:40:35.00ID:O/hEDbqjM
>>49
> ……って続くと思いますが、この配列の中身の全組み合わせを生成したいです

生成すればいい
何が問題なのか説明しないで問題丸投げは嫌がられるぞ
便利な標準関数一つで解決するとかを期待してるなら無理だ
59デフォルトの名無しさん (ワッチョイ a37b-X2LZ)
2020/05/21(木) 05:39:15.31ID:vAblB4+m0
bool x[I_NUM][J_NUM]; とすると、x全体で取りうる値のパターン数は
2 ** (I_NUM*J_NUM) になるから、よほど小さな I_NUM, J_NUM でなきゃ
全通りを一度に生成して一覧表で返す方法は無理だよね。

添字 i, j について回る2重ループと、
特定の i, j における x[i][j] に 0, 1 を格納するループ、
合わせて3重のループで「ある場合のx」を生成して
その x で f(x) を計算して、最大値を更新、
3重ループが終わった時点で全パターンでの最大値が得られる、
て感じにするんじゃないかな。

>>46 の「x[i][j]が変数の関数」ってのが、
関数のパラメータとして2次元配列x[][]を取る、って理解だけど。
60デフォルトの名無しさん (ワッチョイ a363-crVl)
2020/05/21(木) 11:17:40.63ID:jfJI7kIT0
関数の引数として配列を渡す、って理解?
関数側は、「何それ食い物?」って答えそうだな
61デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/21(木) 11:23:40.86ID:lS0q7I070
組合せ最適化問題でしょ
組合せ変数を0,1で定義してる
62デフォルトの名無しさん (ワッチョイ 3302-9WPr)
2020/05/21(木) 11:56:11.97ID:J954h+Be0
Cの逆アセ対策の難読化って、ヘッダの関数シグネチャも変えた方がいいの?
63デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/21(木) 12:14:49.24ID:K4ggzWEW0
バイナリを暗号化して復号ローダーつけるとか
クラックするとき一番困るのがこれ
64デフォルトの名無しさん (ワッチョイ 3302-9WPr)
2020/05/21(木) 12:21:49.65ID:J954h+Be0
>>63
サンクス
復号ローダーは初めて聞いたわw
65デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/21(木) 16:13:44.63ID:K4ggzWEW0
関数のシグネチャはスタティックリンクすればバイナリには残らない
ダイナミックリンクにするとエクスポートテーブルに載ったりするけどね
66デフォルトの名無しさん (ワッチョイ 8b01-CNUQ)
2020/05/21(木) 17:03:55.36ID:vAg7pclj0
セキュリティ周りは英語みるしかないね
日本人は忌避感が強すぎる
teratailとかでたまに質問してる人がいるけど
「悪用するひとがいるから回答できない」みたいな発言ばっかり
セキュリティ後進国ニッポン万歳
67デフォルトの名無しさん (ワッチョイ 4ed2-crVl)
2020/05/21(木) 17:27:45.11ID:VFiGAn+W0
飲食店の場所取りに自分のカバンやスマホ置く国日本。
敷地の出入り口封鎖にプラスチックチェーン使う国日本。
68デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 03:16:22.12ID:yrCNqXls0
ポインタ変数のバイト数って32ビット環境が4バイトで64ビット環境が8バイトですか?
69デフォルトの名無しさん (ワッチョイ 7af8-Rkb+)
2020/05/22(金) 07:18:42.71ID:roLyvqPu0
>>65
夢で見たの?
70デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 07:48:33.62ID:QdrkGYuD0
>>68
そういうのが多いが決まっているわけではない
式sizeof(void*)が生じる値は処理系定義なので
コンパイラのマニュアルに記載されることになっている
71デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:25:04.59ID:yrCNqXls0
>>70
コンパイラによるんですか
72デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 08:32:57.86ID:QdrkGYuD0
>>71
コンパイラにより、かつ一定の挙動が保証される
それが処理系定義
73デフォルトの名無しさん (ワッチョイ 5ac5-f9J/)
2020/05/22(金) 08:50:54.09ID:yrCNqXls0
>>72
なるほど
ありがとうございましたm(_ _)m
74デフォルトの名無しさん (ワッチョイ 9a02-crVl)
2020/05/22(金) 09:09:56.75ID:VBq+8Qqi0
ただし実際の実装では>>68のようになってることが多い。
まるで大井川です。
75デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 09:40:58.83ID:+zt+hei00
10回に1回くらいsegmentation faultが起こる原因って何だか分かりますか?
76デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:12:13.45ID:QdrkGYuD0
初期化し忘れによる不定
77デフォルトの名無しさん (ワッチョイ 1a0e-crVl)
2020/05/22(金) 10:15:38.92ID:QdrkGYuD0
再帰が深すぎ
境界値でのテストをしていない
78デフォルトの名無しさん (ワッチョイ a3ad-K2LH)
2020/05/22(金) 10:15:53.42ID:+zt+hei00
>>76
宣言した、配列や変数に全部初期値を入れた方が良いということでしょうか?
79デフォルトの名無しさん (オイコラミネオ MMe3-rpJt)
2020/05/22(金) 10:44:52.26ID:yrPx0C2WM
>>78
配列や変数に値を入れるより先に値を読むような処理があるなら、その値は不定になるよ。
不定じゃ困るなら初期化しなければならないし、処理の流れ上読むより先に必ず値を入れることになるなら必ずしも初期化は要らない。
80デフォルトの名無しさん (ワッチョイ 275f-tqmx)
2020/05/22(金) 10:46:08.14ID:cP0YviQU0
無効な値とかを決めて、全部初期値としてセットしておいたほうがバグは見つけやすくなるかと
81デフォルトの名無しさん (ワッチョイ 1bf9-f9J/)
2020/05/22(金) 10:46:44.80ID:RnFaArUl0
全部初期化した方がいいといえばいい、というか…
0とかのデフォ値でいいならそうだよ、というか…

変数に代入し忘れのバグって、変数に代入すべき所でしてないのが原因なワケで
それを直さないとバグったままだよ
82デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 20:37:04.55ID:bFQm7Q/P0
フフフフフフフフフフフフフフフフ
83デフォルトの名無しさん (スフッ Sdba-K7uz)
2020/05/22(金) 21:35:43.84ID:zmnGp56md
Cでディクショナリ型のデータ構造が使いたいんだけど何かいい擬似的な仕組みとかないかな
84デフォルトの名無しさん (ワッチョイ 1aa5-ksJK)
2020/05/22(金) 21:37:08.62ID:Czx4JK5B0
深く考えずそこいらのハッシュのコードをコピペして終わり
85デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 22:21:53.66ID:roLyvqPu0
配列に入れてqsortしてbsearch
86デフォルトの名無しさん (ワッチョイ 6301-r9h8)
2020/05/22(金) 22:38:56.16ID:bFQm7Q/P0
GNU汚染されても構わないなら
87デフォルトの名無しさん (ワッチョイ 7af8-bx/N)
2020/05/22(金) 23:06:54.16ID:roLyvqPu0
>>86
意味不明
88デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:45:14.96ID:d49u2Ywha
>>83
tcl/tk
または
memcached/memcache-client
89デフォルトの名無しさん (アウアウエー Sa52-pTKR)
2020/05/23(土) 04:46:10.15ID:d49u2Ywha
>>87
ロリコンGNU汚染は深刻
90デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:04:52.92ID:qSr4WIyQa
Cの初心者質問スレはここでいいのかな?
91デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:09:46.32ID:qSr4WIyQa
【問題】最大値と最小値を順番に表示するプログラムを作成したい。以下のプログラムに適切なコードを追加して完成させよ。
【プログラム】
int main(void)
{
double a, b, c, max, min;
scanf("%lf", &a);
scanf("%lf", &b);
scanf("%lf", &c);
/* ここにコードを追加 */
if(max<b) {
max = b;
}
if(max<c) {
max = c;
}
if(min>b) {
min = b;
}
if(min>c) {
min = c;
}
printf("%f\n%f\n", max, min);
return 0;
}
92デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:10:27.38ID:qSr4WIyQa
【僕の解答】
if(max<a) {
max = a;
}
if(min>a) {
min = a;
}

を追加したのですが、上手くいきません。
どこが間違っているのでしょうか??
93デフォルトの名無しさん (ワッチョイ 2b61-1BKT)
2020/05/27(水) 15:28:26.21ID:7WWgMS5U0
初期化されてないmax,minと比較をしたら結果は不確定になってしまうでしょ
この場合比較自体が不要、代入するだけでいい
94デフォルトの名無しさん (アウアウウー Sac5-TOJA)
2020/05/27(水) 15:30:27.76ID:l0VRR152a
宿題か・・・

宿題は宿題用のスレがあるので次回からはそちらへ。
95デフォルトの名無しさん (アウアウウー Sac5-VESM)
2020/05/27(水) 15:42:06.32ID:qSr4WIyQa
>>94
そのスレってどこにありますか?
96デフォルトの名無しさん (ワッチョイ 2b63-eh4p)
2020/05/27(水) 15:51:45.80ID:YJvjJLLF0
>>95
C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
http://2chb.net/r/tech/1456911928/

C/C++の宿題片付けます 170代目 [無断転載禁止]©2ch.net
http://2chb.net/r/tech/1456647534/
97デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/27(水) 16:09:07.31ID:9+VJvnQZ0
170代目宿題スレッドって2つ生きてるんだ。片方しか見てなかったわ。
両方ともさほど繁盛してないみたいだけど。

最大値、最小値を入力されたデータの一つで仮に設定する手法か。
Cに限らない話だね。アルゴリズムって言うほど大袈裟でもないけど。
98◆QZaw55cn4c (AU 0Ha3-rV2c)
2020/05/27(水) 20:08:39.45ID:9i+JkCQ6H
>>97
5 年ほど前は大繁盛だったんですけど、最近は授業でも C は取り上げられなくなったんですかね?
99デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/27(水) 23:36:23.85ID:3VgZbS/t0
>>98
QZのせいで糞スレ化したからだろう
100デフォルトの名無しさん (ワッチョイ c163-moxv)
2020/05/27(水) 23:44:18.88ID:4XHC6/z30
退学になったストーカー、今どうしているんだろう
101デフォルトの名無しさん (ワッチョイ 2b2c-HO12)
2020/05/28(木) 02:29:00.68ID:MEC8WK3T0
Ruby では、

a = ARGV[ 0 ].to_f; b = ARGV[ 1 ].to_f; c = ARGV[ 2 ].to_f

# ここにコードを追加
max = a; min = a

max = b if max < b
max = c if max < c

min = b if min > b
min = c if min > c

p min, max
102デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/28(木) 11:35:50.55ID:vYrFHFhya
>>99
+1
103デフォルトの名無しさん (ワッチョイ 51b7-hNtB)
2020/05/28(木) 14:39:45.45ID:6YeNiPZ80
自分ならmax,minに無条件に値を入れないで

if (a < b)
{
min = a;
max = b;
}else{
min = b;
max = a;
}
if (min > c) min = c;
if (max < c) max = c;

にする。
104デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/05/28(木) 15:37:06.84ID:z3rIKeXH0
もともと穴埋め問題なのに穴以外のところを変更しちゃダメだろう
105デフォルトの名無しさん (ワッチョイ b95f-bxq0)
2020/05/28(木) 19:53:34.78ID:DxwkdxOL0
Makefileを作るのは今もモダンなやり方でしょうか?
106◆QZaw55cn4c (AU 0Ha3-rV2c)
2020/05/29(金) 00:00:44.81ID:a4X0A1iZH
>>105
モダンな方法は言語によってもいろいろあるようですが(例えばネットに接続してライブラリの最新版を fetch してくるものとか)、でも、私は make から離れなれないですね…
107デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 03:43:32.77ID:m+W9okcT0
今はninjaだかがモダンらしい
使ったことはないが
108デフォルトの名無しさん (ワッチョイ 2b10-IvHb)
2020/05/29(金) 04:13:16.10ID:NMA5faiP0
MPD(Music Player Daemon)のmakeがninjaに変わって、ビルドに泣いた。
mesonというconfigure相当のモノに、configureで指定していたオプションが無くて...

日本語命名品は凶悪だわ。MIRAIとかAnna-senpaiとか。
109デフォルトの名無しさん (アウアウエー Sa23-1zQY)
2020/05/29(金) 12:01:15.97ID:kNF9S1Cua
>>105
C(gcc/cl)でもC++(g++/cl)でもC#(csc)でも現役でmakefile使ってる
110デフォルトの名無しさん (ワッチョイ d3f8-TLlO)
2020/05/29(金) 12:14:09.12ID:gj3l07yG0
モダンかと言われると微妙だけど今ならcmakeでMakefile生成でしょ
111デフォルトの名無しさん (ワッチョイ 012c-HO12)
2020/05/29(金) 12:47:09.33ID:1C1s9P850
Ruby の、rake, thor みたいな、タスクランナーでも使えば?
112デフォルトの名無しさん (ワッチョイ 9302-SpyH)
2020/05/29(金) 13:35:17.59ID:XdiR54Y60
俺もCMake愛用している
113デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 16:31:04.57ID:6E0tm9y70
テキストエディタほどでないにせよ、ビルドツールも喧嘩の種になりそうかな。
大勢の人が集団で開発とか、クロスプラットフォーム向けに配るとかでなきゃ、
好きにすりゃいい気もするのう。

個人的にはmakeが大好きで万能バッチファイル的に使うけど、
俺自身決してモダンボーイじゃないから。
114デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/29(金) 16:58:41.27ID:m+W9okcT0
makeってあれサブルーチンみたいなことするにはどうすりゃええの
115デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/05/29(金) 17:27:36.35ID:eRAtimlp0
gcc流のオプションをclのオプションに変換してclを呼び出すラッパーある?
116デフォルトの名無しさん (ワッチョイ c17b-hIhO)
2020/05/29(金) 19:15:47.50ID:6E0tm9y70
>>114 本当に単純なサブルーチン呼び出し風なら
サブルーチンに相当するターゲットを順番に依存対象にしてこんな感じ。

.PHONY: main sub1 sub2

main: sub1 sub2
 @echo "and now, going main"

sub1:
 @echo "this is sub1"

sub2:
 @echo "I'm sub2"
117◆QZaw55cn4c (AU 0Ha3-7NXc)
2020/05/29(金) 19:52:57.95ID:RYBayMc0H
>>115
それ需要がありそうですね…
118デフォルトの名無しさん (ワッチョイ 13c5-+GDy)
2020/05/30(土) 01:03:07.50ID:fWBi0L4D0
>>116
おお、なるほど
こんなんでいいのか
助かったよサンクス
119デフォルトの名無しさん (ラクッペペ MM4b-eKGp)
2020/06/01(月) 09:59:41.94ID:ruvyvZ5aM
てす
120デフォルトの名無しさん (ワッチョイ d344-8DLB)
2020/06/01(月) 23:23:12.08ID:GR8q4A/e0
グローバル変数で、
char A[4], B[4];
と宣言したら、メモリ中でAのすぐ隣にBが来ることは保証されているんですか?
例えば、Aはインデックスが0から3までですが、この範囲を超えてA[4]に
アクセスしたら、それはB[0]にアクセスしたことになるんですか?
121デフォルトの名無しさん (ワッチョイ 4101-+GDy)
2020/06/01(月) 23:30:59.93ID:K8qQM5W10
環境依存でどっちに配置されるかの保証はなかったような
122デフォルトの名無しさん (ワッチョイ 5347-moxv)
2020/06/01(月) 23:46:04.68ID:idPskxLG0
>>120
範囲を超えたアクセスは未定義動作。順序どころか隣接する保証もないよ。
123デフォルトの名無しさん (アウアウエー Sa23-hvra)
2020/06/02(火) 00:09:21.50ID:xK3L40dza
自分で保証するしかないよ
124デフォルトの名無しさん (ワッチョイ 41ca-buPU)
2020/06/02(火) 07:03:39.55ID:0laQbiBy0
>>120
順序や隣接を保証したいなら struct を使うとか
125デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 09:08:00.49ID:6Rv/5LNl0
その場合もパディングについては知っておかないと。
126デフォルトの名無しさん (スプッッ Sdf3-JkuK)
2020/06/02(火) 09:46:07.68ID:t1gowtwYd
荒井さんがケツに詰め物してくるねんで
127デフォルトの名無しさん (ブーイモ MMab-S7K8)
2020/06/02(火) 10:04:47.98ID:OudFIOlRM
char A[8];
char *const B=&A[4];
でいいじゃんなにが問題なの?
128デフォルトの名無しさん (ワッチョイ 5352-J1D8)
2020/06/02(火) 10:15:18.47ID:6Rv/5LNl0
>>127
質問者のやりたいことはおそらくそれで事足りるとは思う。
問題があるとすればsizeof(A), sizeof(B)の値が当初の書き方と異なるとかかな。
129デフォルトの名無しさん (ワントンキン MMd3-IvHb)
2020/06/02(火) 12:31:18.57ID:9wo5PvtnM
質問者は隣接して欲しくないのだろう。
130デフォルトの名無しさん (ワイーワ2 FFa3-1zQY)
2020/06/02(火) 13:00:39.48ID:nij7NU0AF
ゴールポストが動き始めましたω
131デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:13:15.29ID:LaW3uxXL0
× 隣接する前提で突破させてアクセスしたい
△ どうも B[0] の値がいつのまにか変わっちゃってるんだけど A[]で突破して書き込んだ可能性をチェックしたほうがいい?
132デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:23:37.03ID:iAkpbabl0
配列操作の関数とかで
void func(int data[], int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
みたいな関数って
void func(int *data, int size){
for(int i = 0; i < size; i++)data[i] = 111;
}
って書いても動くけど、何が違うのですか?
書き方違うだけでまったく同じ?
133デフォルトの名無しさん (ワッチョイ 2b69-upCQ)
2020/06/02(火) 13:27:57.83ID:LaW3uxXL0
文法上は違いがなく同じ どっちで書いてもいい
* ではなく [ ] をあえて使って配列ですよと強調することはある
134デフォルトの名無しさん (ワッチョイ 9302-YHRm)
2020/06/02(火) 13:28:49.67ID:iAkpbabl0
ありがとう
135デフォルトの名無しさん (JP 0Ha3-7GQX)
2020/06/02(火) 14:06:09.30ID:G0GLY7QlH
IT掲示板群 http://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ http://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
http://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
http://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
http://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
http://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
http://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
http://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
http://x0000.net/topic.aspx?id=3675-0

PS malloc / free を実装してみた (C#)
http://up.x0000.net/files/TMallocTest.zip
136デフォルトの名無しさん (ワッチョイ 930e-moxv)
2020/06/02(火) 18:13:46.15ID:eZHppilZ0
どう間違ってもsizeof data == sizeof(int *)にしかならんものなのに
白々しくモロバレな嘘を書くことはあるね、確かに
137◆QZaw55cn4c (ワッチョイ a998-rV2c)
2020/06/02(火) 18:57:14.62ID:lElu+09V0
>>127
うまいですねー
138デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:03:39.06ID:wbZbutmLF
まじめにやると
union{
char A[8];
struct{
char A[4];
char B[4];
}S;
}U;
139デフォルトの名無しさん (エムゾネ FFea-hy1p)
2020/06/03(水) 09:11:25.16ID:wbZbutmLF
蛇足でついでにテスト
http://codepad.org/TOo6U3jn
140デフォルトの名無しさん (ワッチョイ 6af8-T3vA)
2020/06/03(水) 10:41:18.77ID:OT4MJN130
#pragma packや__attribute__((packed))は使わなくてよいの?
141デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/03(水) 15:06:51.95ID:sI0nXA5M0
パディングのせいで上手くいくとは限らない(というが大抵の場合うまくいかない)
ってのは>>125が指摘してるのな
142デフォルトの名無しさん (ワッチョイ 99ad-8EEL)
2020/06/03(水) 23:54:54.10ID:s2kYPv500
C言語は得意だぞ笑
何でも聞いてくれ!
143デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 00:21:55.42ID:0jbM0LQ+0
スリーサイズを
144デフォルトの名無しさん (ワッチョイ c146-JlRw)
2020/06/04(木) 04:52:41.39ID:+EhwVkpj0
char、short、long
145デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/04(木) 08:57:07.42ID:Cmh9rlbL0
>>138
それって言語仕様としてはうまくいくと保障できる?
146デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/04(木) 10:08:24.56ID:85VTz4/e0
構造体はメンバの配置順を保証し、共用体は同一アドレスから開始を保証する
charなので境界調整要求が1でパディングに邪魔されることもない
147デフォルトの名無しさん (ラクッペペ MMde-uikQ)
2020/06/04(木) 10:45:21.20ID:TPmiBK6gM
charだからといってバイト境界が1になるという保証は無い
148デフォルトの名無しさん (オイコラミネオ MM65-I6IY)
2020/06/04(木) 10:53:00.07ID:Rfl/DppQM
隣接するcharの間にパディングされるとしたらどんな場合なの?
149デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 11:06:13.36ID:fpPgT8jn0
俺ってC言語得意だからいっぱい質問してくれると嬉しいな
150デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:20:23.30ID:KwTRcPMk0
頼もしいなヲイ。
151デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 11:21:45.55ID:0jbM0LQ+0
「愛してる」ってC言語で言ってみて
152デフォルトの名無しさん (ワッチョイ 2501-B5RW)
2020/06/04(木) 11:41:06.99ID:KwTRcPMk0
++i;
153865 (スプッッ Sdca-Gndw)
2020/06/04(木) 12:13:43.20ID:KnAJsCkid
>>147
ハード全然わからんやつだろ
154デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:23:12.56ID:fpPgT8jn0
charは絶対1バイトになるよな
それともOSのページングの話
155デフォルトの名無しさん (ワッチョイ 35e6-uikQ)
2020/06/04(木) 12:25:55.50ID:c/bZjxGo0
charでダメならint8_tとかじゃダメなの?
156デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:27:08.24ID:fpPgT8jn0
普通にPCで応用ソフト作ってるときにアライメントとか意識したことないわ
157デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:28:04.94ID:fpPgT8jn0
ここのスレってもしかして組み込み連中が多いのか!?
158デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 12:35:48.21ID:fpPgT8jn0
PCは4バイトでやりとりするからint型が一番速いというのは聞いたことがあるが、ソースコードの可読性を落としてまでintで宣言しないだろ
優先順位:可読性>>>>型による実行速度の改善
159デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/04(木) 14:14:51.58ID:3M18ri9Na
>>148
4バイト、8バイト、16バイト境界などで配置する処理系があるかもしれない
160デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/04(木) 14:19:05.16ID:86obmMrj0
Cは白飯
161デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/04(木) 14:21:50.06ID:cftkhVEH0
なんか関わっちゃいけないやつが湧いてるな…。
162デフォルトの名無しさん (ワッチョイ a105-uikQ)
2020/06/04(木) 14:34:04.88ID:797dYlrL0
>>158
32ビットCPUなら4バイト、64ビットCPUなら8バイトずつ読む
のがCPUさんにだいたい優しいんよ

ていうかワード境界またぐと例外ぶっこくCPUとかあるし
でもって例外処理で残りを読むとかで超遅くなるとかさー
163デフォルトの名無しさん (ワッチョイ 8669-INBt)
2020/06/04(木) 14:42:43.40ID:xW4yRJob0
struct は アライメント1/4/8 で半端な部分はパディングする
アライメント4 で宣言順に配置する処理系
struct A1 {
char a[3];
char b[6];
int c;
};

 a 3バイトの後 1バイトパディングを挟んで
b 6バイト 2バイトパディングを挟んで
c sizeof(int) バイト
こうなる

union の中の struct だけは アライメント1 というのもない
union {
char x[100];
struct A1 a;
} foo;

struct A1 b;

foo.a と b が異なるメモリアクセスになっちまうもの
164デフォルトの名無しさん (ワッチョイ 8669-INBt)
2020/06/04(木) 14:49:40.87ID:xW4yRJob0
× struct は アライメント1/4/8 で半端な部分はパディングする
 アライメント4 で宣言順に配置する処理系
○ struct は アライメント1/4/8 で半端な部分はパディングするという処理系で
 アライメント4 配置する場合

言語仕様上
構造体のメンバ間は連続したメモリ空間上にあることは保障してるけど
スキマなく詰めるとかのメンバの詰め方に関する規定は無いんでなかった?
165デフォルトの名無しさん (ワッチョイ 6a85-uikQ)
2020/06/04(木) 18:39:41.01ID:Lshf4FuN0
昔コンシューマのセーブデータ解析してたら3バイトづつのデータが並んでて構造体定義に悩んだことあった。
166デフォルトの名無しさん (ワッチョイ 99ad-s6un)
2020/06/04(木) 21:07:13.12ID:fpPgT8jn0
Cユーザーってやっぱ変わった奴多いなー
ガチムチの土方って感じがするわ
167デフォルトの名無しさん (ワッチョイ 2d63-Ee3U)
2020/06/04(木) 22:35:24.51ID:0jbM0LQ+0
そうか?以前の職場は若い女性が多かったけどな
168デフォルトの名無しさん (ワッチョイ 0ac5-Alfg)
2020/06/04(木) 23:08:18.32ID:5j21ZXn/0
ボイン多(ポインタ)

なんちゃってガハハハハハハ!
169デフォルトの名無しさん (ワッチョイ 2d7b-W1iy)
2020/06/05(金) 05:07:50.58ID:EL/RRtNB0
>>165
おそらくセーブするときにバイト単位でギチギチに詰め込んでたんだろな。
容量の節約か解析避けの一環か。
ロードしたデータは扱いやすい大きさごとに並べ直して使う。
170デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/05(金) 07:22:42.00ID:Ic9kRMZ70
FAT12 みたいな変態パッキングもあるから、24bit のフィールドなんてマシな方。
171デフォルトの名無しさん (スップ Sdea-EE9n)
2020/06/05(金) 12:15:43.11ID:U7lTPDC9d
8bitCPUなら24bitはごく普通
ファミコンのデータ解析したこと無い?
172デフォルトの名無しさん (ワッチョイ ca02-VRPW)
2020/06/05(金) 12:17:01.16ID:QzIlaRt/0
何言ってんだこのバカ
173デフォルトの名無しさん (スップ Sdea-EE9n)
2020/06/05(金) 12:17:22.45ID:U7lTPDC9d
24bit WAVファイルも3バイトずつ
フルカラーBMPも3バイトずつ
174デフォルトの名無しさん (ワッチョイ a105-uikQ)
2020/06/05(金) 13:24:39.84ID:BHpegeI70
>>171
言うほど普通ではないよね
むしろ6bitを無理やり並べるとか もっとケチってたよね
175デフォルトの名無しさん (ワッチョイ 6d01-Alfg)
2020/06/05(金) 18:15:42.07ID:J4O8wyAo0
Base64エンコードとかbit合成するですね
176デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/05(金) 23:17:25.55ID:HYnTNcDC0
>>154
> charは絶対1バイトになるよな
うん、8bitと限らんけどな
177デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/05(金) 23:18:44.38ID:nyToGy4H0
1バイトの定義次第
178デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/06(土) 01:05:56.74ID:WvOhFHQn0
確か1オクテットといったら8ビットだが1バイトは8ビットとは限らないんだよな。
179デフォルトの名無しさん (ワッチョイ 99ad-tS+g)
2020/06/06(土) 01:11:50.49ID:P2ph+/530
おまいらほんとガチムチだな
その才能をもっと色んなジャンルに活かせよ
ゲーム解析するぐらいならCで書かれたPrologのインタプリタのソース読む方が社会的に有意義だし、カッコいいぞ
いいぞPrologは。アルゴリズム特化型言語だ
180デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/06(土) 01:13:17.96ID:gRHlLLnD0
漢なら、マシン語
181デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 01:21:43.95ID:Lxl6lnvAa
8進数は、1バイトが6ビットだったことがあってこそなんだろうね
182デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 01:24:08.28ID:Lxl6lnvAa
おいちゃんの K&Rの表紙は、6ビットの紙テープで描かれた Cという文字だな
183デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/06(土) 03:35:05.84ID:xnAk4BrC0
今の本?(写真3つ目)は鑽孔テープじゃないのか。
dictionarymay.cocolog-nifty.com/blog/2012/08/c-f754.html
184デフォルトの名無しさん (ワッチョイ caad-DtfW)
2020/06/06(土) 06:53:02.07ID:WvOhFHQn0
英語では数は3桁区切りだったもんだからつい2進数も3桁毎に区切って考えてしまったのではないかな?
185デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/06(土) 08:12:55.01ID:EzIfGGLg0
流石にそれは無理があるw
>>181が言うように1バイトと言うか1文字が6bitで良かったから3bit x 2で管理するのが都合が良かった
なので当時のコンピュータには18bitとか36bitマシンとかもあった
その流れで16bitマシンでもパネルとかは3bit区切りになってたりする
C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚
186デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 08:18:49.66ID:/D6kD8C1M
ABCDEFを数字として扱うには時代が早すぎたんだよ
187デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/06(土) 08:31:19.90ID:maGrK2WM0
コンピュータの黎明期は、時間や角度の単位のようにいろんな約数がある方が
応用が効くと思われていたらしい。
188デフォルトの名無しさん (ワッチョイ 3e8c-tVk4)
2020/06/06(土) 08:56:36.69ID:sv96bxFv0
にしん御殿を建てた漁師もいた。
189デフォルトの名無しさん (ワッチョイ 2a52-gmWH)
2020/06/06(土) 09:02:46.57ID:AQK/o2mm0
>>181
N進数自体は論理的にはNがどんな正の正数でも可能だけど、C言語的に文法上8進数が記述できるのはUNIX系のファイルシステムのパーミッションとかで使いやすいからとかでないかな。
190デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 09:03:53.79ID:HDxtjsAHM
C言語の整数リテラル0は8進数
191デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 09:54:16.10ID:URn6wcZIM
c言語で9ビットのコンピュータ使ったことあるが、頭が狂いそうになったよ
192デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 10:14:23.16ID:df/Ddbgs0
これまで常識だと思っていたことをあっさり否定されてしまうから?
193デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 11:47:23.01ID:7ywXVWZR0
>>191
そういう特殊な環境だとむしろアセンブラを使いたいな。
Cじゃ活用できないアーキテクチャになってそう。
194デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:02:30.70ID:iC9mu8GeM
組み込みだと4bitマイコンあたりはまだ現役で使われてそうだな
C言語処理系があるかどうかは知らんけど
195デフォルトの名無しさん (ラクッペペ MMde-BvQ6)
2020/06/06(土) 12:06:28.77ID:iC9mu8GeM
ちょっとググったら何か見つかったw
https://www.renesas.com/jp/ja/products/microcontrollers-microprocessors/720.html
196デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/06(土) 14:08:17.65ID:7ywXVWZR0
>>194
Cがあったとしても char の最少サイズは 8bit が保証されてるから、Cを使うとかえって面倒そう。
197デフォルトの名無しさん (ブーイモ MM2e-mXJe)
2020/06/06(土) 14:13:59.16ID:URn6wcZIM
>>192
0xffが255、0x1ffが-1になる
これだけで充分パニック
198デフォルトの名無しさん (アウアウエー Sab2-fmBU)
2020/06/06(土) 14:32:33.46ID:3ChBl+cga
0377=255、0777=-1 じゃない?
199デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/06(土) 14:38:42.25ID:df/Ddbgs0
DEC PDP-7は18bitマシンだったから
200デフォルトの名無しさん (ワッチョイ 86d2-uikQ)
2020/06/06(土) 16:36:30.29ID:75+7y3pj0
アセンブラで別のCPU勉強し直すと変に前のCPUの知識が足引っ張って戸惑う。

Z80 → x86
セグメント?概念は理解できた。記述方法よくわからん。
repって何?
byte prt ? word ptr? あ、データサイズ指定必要なんだ。

→とあるスパコンCPU
え?オペランド3つ? 
あ、0レジスタは聞いたことある。 
スタックレジタ無し?汎用レジスタで代用?
201デフォルトの名無しさん (ワッチョイ caad-wk5h)
2020/06/06(土) 17:08:16.80ID:WvOhFHQn0
こんなまとめ記事のようなものを発見した。

1バイトが8bitに定まったのは2008年 - Qiita
https://qiita.com/yaju/items/c5da6df2221d5c3611e0
202デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 20:08:01.18ID:xUUhYAg30
ソフト的に1バイトは8ビットかも知れないが、回路的には奇数アドレスは存在しないから、1バイトは16ビットなり32ビットで扱われているんだよな
203デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:16:06.02ID:M07jk5SE0
>>189
ダウト
204デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/06(土) 20:21:12.72ID:M07jk5SE0
>>200
MIPSか?
205デフォルトの名無しさん (ラクッペペ MMde-uyzx)
2020/06/06(土) 20:23:53.57ID:c5HWAPmOM
> 回路的には奇数アドレスは存在しない

そんなものはマイコンのアドレスバスの接続方法による
小容量の内蔵RAMしか利用できないマイコンだと16bit単位とか効率悪すぎるだろ
206デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/06(土) 21:05:24.00ID:xUUhYAg30
>>205
データバスが16ビットのデバイスはA0が存在しないから、奇数アドレスがないんだよ
ハードウェア的には8ビットは扱えない
上位はコンパイラーが無視してるんだろ
昔の6800系のgccは奇数アドレスが使えなかった
207デフォルトの名無しさん (ドコグロ MM72-pFiI)
2020/06/06(土) 22:04:47.08ID:gPrzX488M
8ビットバスとかダイナミックバスサイジングとか無視して何言ってんの。
208デフォルトの名無しさん (ワッチョイ c1f0-mXJe)
2020/06/07(日) 04:50:34.91ID:OwGdNnMk0
8ビットが扱えるやつのint型もエンディアンがビックかリトルかで、ややこしくなる場合がある
209デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 09:49:33.48ID:8XBNAcXF0
カメラ屋がどうした
210デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 10:16:23.75ID:H9nBLvae0
>>189
> N進数自体は論理的にはNがどんな正の正数でも可能だけど
N = 1 でやってみ
211デフォルトの名無しさん (ワッチョイ ca4f-uikQ)
2020/06/07(日) 10:27:42.17ID:uZfe/Sta0
10進の1が00になって2が000とかかな。
212デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 10:50:04.35ID:u8uKtPqt0
ON/OFFはどう区別するんだ?
213デフォルトの名無しさん (ワッチョイ c146-Po7o)
2020/06/07(日) 10:51:10.58ID:SnZB8S+e0
インド人もびっくり
214デフォルトの名無しさん (ワッチョイ 6d01-tVk4)
2020/06/07(日) 11:32:40.14ID:Mh1dmxtn0
e進数
215デフォルトの名無しさん (ブーイモ MM2e-gM8R)
2020/06/07(日) 12:36:00.73ID:sH3MBrgqM
1進法
https://ja.m.wikipedia.org/wiki/%E4%B8%80%E9%80%B2%E6%B3%95
216デフォルトの名無しさん (ワッチョイ 6dca-I6IY)
2020/06/07(日) 13:19:03.64ID:8XBNAcXF0
>>211
1倍すると桁が増えないといけないからいろいろ破綻しそうだな
217デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:21:54.14ID:io+hJyHh0
1倍では桁は増えんだろ
2倍で桁数が2倍になる
218デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:33:17.03ID:rhi/+ASf0
1進数は存在しない
って話だろ
219デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:38:00.69ID:io+hJyHh0
>>218
>>215
220デフォルトの名無しさん (ワッチョイ 4a0e-uikQ)
2020/06/07(日) 13:39:30.13ID:ZZaIDzdi0
ハフマン法のパーツ
221デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:45:05.25ID:rhi/+ASf0
>>219
その1進法に対応する2進法はこんな感じ
つまり違うもの

0
1
00
01
10
11
000
001
010
011
100
101
110
111
0000
222デフォルトの名無しさん (ワッチョイ b9b3-EE9n)
2020/06/07(日) 13:49:56.72ID:rhi/+ASf0
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q10103845725

洒落です
223デフォルトの名無しさん (ワッチョイ 6a84-gM8R)
2020/06/07(日) 13:50:06.08ID:io+hJyHh0
>>221
なるほど
勉強になった
224デフォルトの名無しさん (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 16:38:34.23ID:Hm2+3fRX0
>>221 上手い書き換えだな。
何やら見覚えのある「位取り」というか「桁上がり」法だと思ったら、
「連番を(数字でなく)英文字を使って表現する」やり方がこれだ。

1番 a
2番 b
...
26番 z
27番 aa (位取り/桁上がりの 0 に相当する記号が存在しないため)
28番 ab
...

『Cの宝箱』(工学社)って本で数値からの変換プログラムを含めて初めて見た。
ANSI以前の古い本だけど、扱ってるネタは今でもなかなか面白い。
225デフォルトの名無しさん (ワッチョイ 8663-Ee3U)
2020/06/07(日) 17:17:01.17ID:u8uKtPqt0
1進数のかけ算

111 × 11 = 111111
1111 × 11111 = 11111111111111111111
226デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:27:43.06ID:ABh2E5hxF
>>224
excelのカラム名だな
227デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 17:53:13.82ID:H9nBLvae0
>>215, >>219
それ桁数でカウントしてるだけでN進数と言うのは無理あるだろ
228デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/07(日) 17:56:40.04ID:ABh2E5hxF
定義上は間違ってない
0の桁上がりが00で次が000なら成立してる
229デフォルトの名無しさん (ワッチョイ ca01-tm4w)
2020/06/07(日) 18:51:19.67ID:H9nBLvae0
まあお前の定義ならそうなんだろうな
230224 (ワッチョイ 2d7b-W1iy)
2020/06/07(日) 18:58:57.43ID:Hm2+3fRX0
>>226 確かに「Excelのカラム」がこれだね。
範囲指定の時にマウスポインタを暴走させるとちょくちょく目にする。
身近な実例なのに思いつかなかった。

それにしてもワッチョイの英数部分(何て呼ぶんだろ?)が FF11 とは。
231デフォルトの名無しさん (アウウィフ FF11-B5RW)
2020/06/08(月) 15:49:07.32ID:blut5LG8F
#
232デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 18:58:49.17ID:feWbpc5y0
今このスレ見返してたんですが
gcc -W -Wall
って意味あるんですか? -Wallオプションだけと何か違うの?
233◆QZaw55cn4c (ワッチョイ 5398-nFpw)
2020/06/10(水) 21:32:32.29ID:OTs8rmHM0
>>232
私も gcc/clang でそのオプションを好んでいます、理由はしりません…
234デフォルトの名無しさん (ワッチョイ cf2d-6Bey)
2020/06/10(水) 22:37:56.41ID:GAHb3hGx0
>>232
俺も気になって調べてみたら出てきた
https://at-aka.blogspot.com/2006/11/gcc-wall-w.html
235デフォルトの名無しさん (ワッチョイ 7f5a-e9AF)
2020/06/10(水) 23:10:40.06ID:tM8DbNAJ0
>>234
なるほど
https://linuxjm.osdn.jp/html/GNU_gcc/man1/gcc.1.html
このページを見た限り-Wは-Wallに含まれてるのかなと解釈してました
どうもです
236デフォルトの名無しさん (ワッチョイ 237b-FyPE)
2020/06/11(木) 06:19:27.46ID:zR4s1lAr0
man gcc を見ると -Wextra のところに This option used to be called -W.
と出てるね。日本語だと「かつては -W と呼ばれていた」で合ってるだろうか。

-W を指定することと -Wextra を指定することは同じ効果かな。
237デフォルトの名無しさん (ワッチョイ 1a0e-IXeA)
2020/06/18(木) 12:45:08.73ID:5LdPXPiS0
clやgccのassertって生真面目にabortしてうざいね
イベント1001なんか記録してくれなくていいのに
238デフォルトの名無しさん (ワッチョイ 8f01-pPzt)
2020/06/24(水) 12:01:11.31ID:T7mdaPsT0
元気があればなんでもできる。
Cさえ出来ればなんでもできる。
239デフォルトの名無しさん (ワッチョイ 7fd2-NJGG)
2020/06/25(木) 07:45:23.79ID:1LmSFJHY0
正しライブラリーは付属しません。
240デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:00:17.88ID:Nd1uEPT+0
C書いてる人ってみんな可変長配列とかリストとか木構造とかグラフとか自前で書けるよな?
241デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:01:55.58ID:XUZZkb7Yd
木構造⊂グラフ
242デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/25(木) 08:03:09.05ID:XUZZkb7Yd
最近勉強して書けるようになったから嬉しいの?
243デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 08:06:39.00ID:Nd1uEPT+0
<3
244デフォルトの名無しさん (ワッチョイ 8f9b-/Fs/)
2020/06/25(木) 11:19:49.85ID:2XRewe5U0
>>240
自己参照構造体とか普通に使う
245デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/25(木) 11:30:04.55ID:N8mY4JDD0
>>240
プロのミュージシャンは「蛙の歌」くらい自分で弾けるよな? くらいのシュールな質問だ
246デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/25(木) 12:01:03.23ID:6D953TAQ0
最近覚えた言葉を使ってみました
247デフォルトの名無しさん (ワントンキン MM9f-rLul)
2020/06/25(木) 12:24:56.81ID:9JLqMYSrM
職業画家ならピカソのイタズラガキぐらい描けるよな?
248デフォルトの名無しさん (ワッチョイ cfbb-5fXH)
2020/06/25(木) 12:37:09.65ID:Nd1uEPT+0
<3
249デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 12:50:41.05ID:VB93ltO10
単なるそういう構造でも感心するような実装ができたらすごいけどな。
メモリ管理は奥が深いよ。
250デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/25(木) 13:27:45.77ID:HOWmpZqad
名前が付いてるようなのは既存のを使えば良い
付いてないような複雑な構成、特殊な構成のものがさらっと作れるようになって一人前

名前が付いてる構造をただ列挙して喜んでるようなのは初心者
251デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/25(木) 13:32:44.25ID:CW3F7rpu0
>>240
API使うから見たこともない。
252デフォルトの名無しさん (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:18:14.56ID:f73tPHfd0
カーニハンが引用して有名になったフレーズだったと思うけど
「職業プログラマーでも二分探索を正しく実装できる者は意外なほど少ない」
ってのと似てる感じね。
出典はベントリーさんの記事だったかな。

で、ベントリーさんが出してる二分探索ルーチンの例が
(細かいこと言えば)誤ってるというお見事なオチ。
253252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:22:50.60ID:f73tPHfd0
いかん、カーニハンさんに「さん」付けるの忘れた。
カーニハンに「さん」を付けるとなんか座りが悪い気がするんだよ。
べつに「ハン」は関西弁の「〜はん」じゃないのだけど。
254デフォルトの名無しさん (スッップ Sd5f-xaSm)
2020/06/25(木) 17:28:33.47ID:EHXNgq1Pd
アカデミックな文章のなかでは敬称略はデフォやん
255デフォルトの名無しさん (ワッチョイ 3f01-In76)
2020/06/25(木) 17:53:32.70ID:Yy8QFoSC0
インブリードチェックとかねー
掘り掘りの打ち切り確認とか
可変配列で返せると効率的なのに記述や関数使用方法がCでは面倒くさいという
web上のサラブレッド血統表のインブリードどこも結構いい加減な自動抽出だし
256デフォルトの名無しさん (ワッチョイ 7f46-rLul)
2020/06/25(木) 17:55:14.95ID:5kqDetxy0
飴ちゃんみたい、蟹はん。
257252 (ワッチョイ 0f7b-Yzg9)
2020/06/25(木) 17:58:50.94ID:f73tPHfd0
>>254
そこは俺の投稿はアカデミックじゃなくて井戸端の噂話くらいなモンってことで。
何なら便所の壁に描かれた傘差したネズミの落書きでもいいのだが。
258デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/25(木) 21:13:44.78ID:VB93ltO10
>>252
正しく実装ってのが何を指してるのかよく分からないけど、その解説ってどこかにある?
259デフォルトの名無しさん (ワッチョイ 0f3e-NJGG)
2020/06/25(木) 23:23:06.88ID:Dxq2c9AW0
2ch (5ch) ではカーニハンは蟹飯とか呼ばれたりするのも普通だからなー。
さんを付けた方がすわりが良いと思うなら付けてもいいが、
ここでは雑に言っても文句は出ないよ。

敬称を付けなきゃ敬意がないってわけでもないし。
260デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/25(木) 23:35:03.55ID:kZgmLzec0
蟹めしとしか読めない。
261252 (ワッチョイ 0f7b-Yzg9)
2020/06/26(金) 07:00:11.04ID:Ks2Lu7GD0
>>258 の人に質問されたのでちょこっと書庫をひっくり返してみた。
書籍資料しか示せないし、古い本だから見つけるのは大変かも知れんけど。
今回は「さん」無しで書かせてもらう。人名が多くてやかましくなるでな。

カーニハンによる言及は『プログラミング作法』(ASCII)の第2章。
見直して気づいたけどベントリーからの直接の引用ではなかった。
あと、この本はカーニハンとパイクの共著だったので訂正させてもらう。

ベントリーによる2分探索法は『プログラム設計の着想』(近代科学社)の第4章。
ここに「ベル研とIBMで試したら2時間かけて正しく書けたのは10%」と出てる。
この章をまるまる使って、二分探索ルーチンを題材に、正しいプログラムを書く
手順を説明してるが、使用言語は擬似コードとBASICの方言。


補足としてネット情報 Wikipedia 「二分探索」ページ
特に「実装上の間違い」の部分が興味深いかと。
262デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 07:30:17.89ID:zNtEkj210
>>261
丁寧にありがとう。
確かにやらかしてたわw
263デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:30:54.43ID:CbN2WAX/d
見てみたけど...

アルゴリズムの問題じゃなくて
ただのインデックスのオーバーフローか

インデックスが計算途中でオーバーフローする心配をするなら
要素数自体がintの範囲を越える心配やメモリ不足の心配もしないと
264デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:33:24.14ID:CbN2WAX/d
intじゃ足りないかもしれないから
size_tじゃないとバグとか言い出すのか
くだらん
265デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 07:37:26.08ID:CbN2WAX/d
斜辺を求めるコードも
sqrt(a*a+b*b)
なんて書いたらバグだと言われちゃうね
266デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 07:53:21.24ID:R6SXx1iE0
まあ、ビット数の少ないCPUを使ってた頃はオーバーフローで実際にバグの挙動を示していたこともあったのかもね。
64bitになって、今しばらくはインデックスの足し算をいい加減な順番で行ってもオーバーフローになるほど実メモリが積めなそうだけども。
267デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 08:08:32.76ID:tBxKhrZw0
>>265
aとbがintなのにキャストしないタコいたら許さん
268デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 08:22:33.07ID:zNtEkj210
>>263
だからアルゴリズムじゃなくて実装の問題だって話なんだろ。
そして型が int だとか size_t だとかの問題でもない。
どんな型であろうと計算の途中でその型をオーバーフローする可能性がある式だというのが問題であり、扱ってるデータではオーバーフローしないことを意識した上でそういう式を選んでるのかたまたまそういう条件になってるのかは大違いってこと。
最近は64bitだからいちいちそんなこと考える必要もないというなら、それは違うだろと(検索対象がメモリで64bitに及ばないメモリ量の環境でしか使わないコードだという考慮くらいは必要)。
特にライブラリなんかでは、インデックスの許容範囲がその型の許容範囲より狭いならば明記しなければならない。
269デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:51:08.83ID:ulI8ykG3d
>>268
>>265もバグという主張だね?

>>267
a, b はdoubleとする
270デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 08:55:01.02ID:ulI8ykG3d
単純な数値計算も簡単じゃなくなるね
大変だ

>>268
底辺a, 高さbの三角形の面積を返す関数を書いてみて
271デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:27:28.43ID:zNtEkj210
>>269
扱う値の範囲をなんの考慮もせずに書いたコードがたまたま動いてるならバグと言うかはともかく考慮漏れだわな。
巨大な空間で距離を計算する話だったら、とりあえず式が double で足りるかくらい考えるだろ?

>>270
オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
整数型なら a / 2 * b + a & 1 かな?
扱う値によって型なり式なりを選べってことだよ。
272デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 09:39:45.10ID:zNtEkj210
>>271
a & 1 にカッコ忘れてるのは多目に見て
273デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 10:09:23.28ID:zNtEkj210
>>271
三角形の整数の計算式は全然ダメね。
書き直す気も無いけど、値の範囲に適用する式と型の考慮が必要ってのが言いたいことね。
274デフォルトの名無しさん (ワッチョイ 7f69-H7K1)
2020/06/26(金) 10:12:30.36ID:DHczgJjy0
ビットand の & の優先順位が低いのがすげー気になるマン
275デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/26(金) 10:24:55.68ID:0ez7fC22d
>>271
aが小さいとダメだからバグです
276デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 11:51:33.67ID:CsRb/b6RM
確かに、掛け算並みに優先度高くても良い気がする
277デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/26(金) 12:06:06.43ID:wPd6FHznd
比較より低いのは仕様バグだな
278デフォルトの名無しさん (ワッチョイ 3ff9-5fXH)
2020/06/26(金) 12:54:54.87ID:hOK/Kg/V0
a,bがdoubleでsqrt(a*a+b*b)以外にどう書けと
279デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:34:59.23ID:zNtEkj210
>>278
もし double でも計算途中でオーバーフローする可能性があるなら、最初に適当な係数の平方で a b を割って計算してから係数を掛けるとか?
あるいは long double が使えるなら単純にそれで計算するとか。
逆に言えば、オーバーフローする可能性があるならなんとかしないといけないわけだから、なんの変形もせずオーバーフローするに任せたらそれこそバグでしょうよ。
280デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 13:41:41.84ID:zNtEkj210
>>279
また嘘言った
後で a b 共に2乗するんだから係数の平方じゃなくて係数そのもので割るんだね。
すまん
281デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 14:27:07.38ID:QICJMmXvM
doubleでオーバーフローって、10の何乗を想定してる?
282デフォルトの名無しさん (ワッチョイ 4f19-IZ2D)
2020/06/26(金) 15:19:41.24ID:gU0A9MqI0
aとbの差が大きいときでしょ
283デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 15:43:00.88ID:QICJMmXvM
それオーバーフローじゃないし、
情報落ちのことだとすればsqrt(a*a+b*b)をどう工夫して防げと?
284デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 16:10:21.31ID:tBxKhrZw0
>>281
1.79769e+308
まさか、これを知らねえんじゃねえよな
285デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 16:42:15.29ID:QICJMmXvM
で、宇宙の観測可能な距離をヨクトメートル単位で表したら?
286デフォルトの名無しさん (ワッチョイ 0f97-h9M3)
2020/06/26(金) 16:44:50.44ID:R6SXx1iE0
デカルト距離は物理的な空間でしか使われないわけじゃないしなあ(屁理屈
287デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/26(金) 17:02:33.96ID:tBxKhrZw0
64bitあれば大きいほうはエクサ、小さい方はアトまで扱える
今飲んでるコーヒーの液面からカップの底までが1アトパーセクくらい
288デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:41:45.88ID:PjbtVFt+F
>>282
aに対してbがはるかに小さいとして
sqrt(a*a+b*b)がaになってもあまり困らない
289デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 17:47:26.42ID:zNtEkj210
double で何やったらオーバーフローするのかってことじゃなく、必要な対象を計算するのに必要な型や計算手順は何かってことだろ。
掛け算や指数を扱うならオーバーフローについては普通に考慮するもんだと思うけど、そうじゃないのか?
今扱おうとしてる対象について考慮してるから double なら大丈夫だと考えてるんだろ。
で二分木については足し算がオーバーフローする可能性が盲点ってことで、なるほどと思うべき所だろ。
アルゴリズム上も計算途中に最初に与えた imax を超える値が現れるようには見えないんだから。
今時 double も 64bit整数も当たり前だったとしても、SIMD使いたいからデータ長を抑えたいなんてこともあるでしょ。
290デフォルトの名無しさん (ワイーワ2 FFbf-/Fs/)
2020/06/26(金) 17:54:06.22ID:PjbtVFt+F
一般論で答えても叩かれる
質問内容に特化して答えても叩かれる
どうしろと
291デフォルトの名無しさん (ブーイモ MM0f-Tpb5)
2020/06/26(金) 17:56:45.81ID:9etEQyfpM
俺くらいになればケッセルランを12パーセクで飛ぶくらい余裕
292デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:11:05.35ID:EPLAnBEId
>>289
通常使わない範囲の心配を無条件で(コストをかけてでも)するべき
なんて主張はあほ

その例が>>265
293デフォルトの名無しさん (スプッッ Sd5f-WMoV)
2020/06/26(金) 19:13:45.24ID:EPLAnBEId
>>278
いくらでも方法がある
ldexp / frexp を使うのが普通かな
294デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:15:32.77ID:TyyL07+Ya
>>240
みんなかどうかは知らんがおれは書けるな
295デフォルトの名無しさん (アウアウウー Sad3-u/pE)
2020/06/26(金) 21:18:13.75ID:TyyL07+Ya
>>253
カニチャーハン
296デフォルトの名無しさん (ワッチョイ 3f7d-naG6)
2020/06/26(金) 21:39:07.24ID:/YkOh9yY0
int x=0;
int y=(x=1)+(x=2);
とするとyが4になってしまいます。
3だと思うのですが。
297◆QZaw55cn4c (NZ 0Hbf-W2Vx)
2020/06/26(金) 21:43:56.84ID:9IxUvn/4H
>>271
>オーバーフロー回避を意識する必要があるなら a / 2 * b とか?
それは回避したことになりません、演算子 / 2 と * b のどちらが先に処理されるかはコンパイラが籤引きで決めるか独断偏見で決め打ちするのでは?
298◆QZaw55cn4c (NZ 0Hbf-W2Vx)
2020/06/26(金) 21:46:49.80ID:9IxUvn/4H
>>296
https://ideone.com/w2FJBE
……
そんなことがあるんだ…
299デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:52:32.85ID:Sd6G194T0
逆にして(x=2)+(x=1)
だと 2 だね
https://ideone.com/MbXZtz
300はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/26(金) 21:54:17.86ID:gtOtInFM0
>>296
副作用は副作用完了点までのどこかで起こることになっているのでそういうこともある。
っていうか普通は警告が出るでしょ。
301デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 21:57:33.08ID:Sd6G194T0
int x=0;
x=1;
x=2;
int y=x+x; //(2+2)
という話になっているのだと思われ
302デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/26(金) 22:03:10.60ID:Sd6G194T0
あとは優しいおじい・・紳士様がアセンブラでは実際どうなっているかを解説してくれるはず
303デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/26(金) 22:32:16.04ID:zNtEkj210
>>297
自信を持っては言えないけど、/ 2 してから * b するのとその逆とでは結果が違うんだから、書いた式と結果が異なる可能性がある計算順にコンパイラがいじるものかね?
例えば各項を関数として a() / c() * b() にした場合、a 〜 c がどの順で実行されるか、つまり項の評価順は保証されないけどそれら結果を使った計算順は式通りになるんじゃないの?

でももし仮にそういう懸念があるなら、カッコ付けるなりそれでだめなら2手に分けるなりすればいいんじゃね。
304デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 22:48:16.05ID:GYQIE3peM
>>302
アセンブラだとxに2入れて、yに4入れて、おしまいだろうな。
305デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/26(金) 23:31:20.43ID:ONx8T6wJ0
誰も逆汗しないのな。
一昔前だったら
A「俺がやってみるから待ってろ。」
B「いや、俺がやるから(ry」
C「いやいや、俺こそが」
AB「「どうぞどうぞ」」
の前振りだったのに。

VC++2019のデバッグモード
int y = (x = 1) + (x = 2);
00C118FF mov dword ptr [x],1
00C11906 mov dword ptr [x],2
00C1190D mov eax,dword ptr [x]
00C11910 add eax,dword ptr [x]
00C11913 mov dword ptr [y],eax

最適化したら 304 になるんだろうけど。
306デフォルトの名無しさん (ブーイモ MMb3-R4wo)
2020/06/26(金) 23:34:17.38ID:GYQIE3peM
クソ冗長なコードだな
307はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/27(土) 00:56:28.31ID:VCabyp7F0
>>297
/ と * の優先順位は等しくて左結合なんだから疑問の余地はない。
a/2*b と書いてあったら a を 2 で割ってからそれに b をかける。
またはそうしたかのように見えるような振舞いをすることは保証される。
そうなってなかったらコンパイラのバグだよ。
308デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 01:04:32.76ID:zYxBmbbI0
「回避手段があるならバグとしない。」
309デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 01:14:50.37ID:qKnmoagb0
例えばスケーリングなんかの時、オーバーフローを避けるため割り算やってから掛け算することもあるし、丸め誤差を小さくするため掛け算やってから割り算することもあるし、
意図して式書いてるんだから順序を勝手に変えられたらやっぱり大問題だよな。
310デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:08:40.12ID:TsX0h7IG0
>>297
オーバーフローは回避出来てるが
かわりにアンダーフローの可能性が出てくる
だから>>271はバグ
311デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 07:18:53.17ID:TsX0h7IG0
QZがここまでアホだとは

>>296
https://www.jpcert.or.jp/sc-rules/c-exp30-c.html
312◆QZaw55cn4c (NZ 0Hbf-W2Vx)
2020/06/27(土) 07:46:43.88ID:5JNhQ0LTH
>>311
ありがとうございます、たしかに副作用完了点に対する私の誤解です
@値の評価の問題、と、A副作用の問題、とを完全にごった煮にしてました、今回は副作用は関係ない…

>QZがここまでアホだとは
現在までの推移を客観的に観察している限りにおいて、これはスランプでは済まず、私はこれからもっと阿呆になっていくのだろうと私は予測しています
http://2chb.net/r/tech/1434079972/ へのエントリー数もパッタリ止まってもう増えそうもありません
313デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:38:40.98ID:Fil4ka9J0
>>296
鼻から悪魔ネタはもうお腹いっぱい
314デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 08:39:33.42ID:Fil4ka9J0
>>309
行を分けて書けばいいだけ
315デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:42:53.25ID:aqzZKmXR0
アホが使うと使い手とそっくりな動きになる
Cとはそういうものだ
316デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:45:36.41ID:TsX0h7IG0
>>314
行を分けると何が解決するって?
お前もQZと同じアホ?
317デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:48:05.70ID:TsX0h7IG0
>>309
>>268によると
オーバーフローも丸め誤差増大も
両方回避しないとバグらしいぞ
318デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 08:51:31.93ID:TsX0h7IG0
オーバーフローを最近勉強して
それだけが気になって
それを回避するために別の問題を起こす
初心者君のたわごとだから
放置すればいいんだけど
319デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 08:57:09.10ID:aqzZKmXR0
どんくらいまでの誤差を許容すべきかは
なかなか数学的な考えどころ
320デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:11:00.12ID:TsX0h7IG0
許容誤差
パラメーターの対応範囲
コスト
保守性、可読性、...

これらを総合的に考えてコードを作るのが普通
1個だけの要素が気になるといびつな実装になる

色々な規格も偏った視野で作られる事が多くて
いびつな物が多い

それぞれの項目を勉強するのはもちろん良いこと
321デフォルトの名無しさん (ワッチョイ 3f4f-NJGG)
2020/06/27(土) 09:23:41.94ID:6HwwPL420
>>317
両方起こりえる状況なら変数の精度不足というバグか。
322デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 09:32:46.13ID:Fil4ka9J0
>>316
ああアホには「文」を分けると書かないとわからんかw
323デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 09:40:26.98ID:TsX0h7IG0
文を分けると何が解決するって?

乗算と除算の演算順がコンパイラによって変わる
というのはQZの勘違いな主張で
明確に順番は決まってる
(QZが>>312で勘違いを認めている)
324デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 09:50:13.95ID:qKnmoagb0
オーバーフローの話は (imax + imin) / 2 ではなく imin + (imax - imin) 2 と書けば回避できるってのが発端なわけだけど、何がそんなに気にくわないんだ?
盲点とも言えるよくやりがちなことなんだから、素直に吸収しときゃいいんじゃないの?
325デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:02:32.81ID:TsX0h7IG0
>>324
オーバーフローの可能性があるならそうやって回避可能
っていうだけの話なのに

パラメーターの型全ての値に対応出来ないとバグ
とか言い出す人がいるから
326デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:08:05.06ID:qKnmoagb0
>>325
それってどれのこと?
327デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:11:14.54ID:qKnmoagb0
あぁ、もしかして >>268 のことか?
んじゃ int の代わりに size_t だったら >>324 の前者の式のままでもいいってのがお前の主張か。
328デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:20:58.17ID:TsX0h7IG0
元はカーニハンとかいう人だろ
その影響を受けたのが>>268

オーバーフローの可能性が無いなら
前者のままでも良いっていうか
前者の方が良い場合もある

コストは確実に前者の方が安い
リニア検索ではなくてコードサイズの大きな2分検索を使うあたり
パフォーマンスが全くどうでも良い所ではないということもわかるわけで

移植性は後者、コストは前者、
可読性は微妙だが前者?

intよりsize_tを使うべきなんて思ってないよ
使う範囲、使う環境、移植性、...
などなどでどうするべきかは変わる
329デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:23:22.01ID:qKnmoagb0
>>328
お前が揶揄してる人(おれ)が言ってることがようするに
> 使う範囲、使う環境、移植性、...
を考慮して選択しろと言ってるんだが。
330デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:23:42.01ID:TsX0h7IG0
C言語スレだから

チープな8bit環境から
スーパーコンピューターまで
様々な所で使われる

重視すべき項目は時と場合で大きく違う
331デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:25:33.79ID:TsX0h7IG0
>>327を見ると
常に後者を選ぶべき
だと思ってるように見えるけど
332デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 10:29:38.97ID:qKnmoagb0
>>268 の次の >>271 なんかを含め流れを見て言ってくれてるのかしら
333デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 10:49:08.20ID:TsX0h7IG0
>>265
オーバーフローやアンダーフローを意識してコーティングすべきと

それは良い心がけで
334デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 11:08:27.27ID:qKnmoagb0
>>333
たぶん論旨は伝わったと思うので追い打ちかけるつもりではないが、レス付けるに当たっては「オーバーフローを回避するなら」と必ず付けてるし、扱う値の範囲を鑑みて型が充分か考慮しろと言ってるだけのことな。
扱うのが宇宙の座標をメートル単位で、くらいの話なら double でもオーバーフロー的な問題は無いなとか、
でももしシミュレーションで宇宙を100次元空間として体積を求める話だったら double でも大丈夫かな?とか考慮するでしょ。
まあそんなケースだと値の大きさより有効桁の方が心配だけど、なんにしてもとりあえずデカい型だから大丈夫wなんて漫然と思ってるならただのアホという至極当然の話。
335デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 12:40:30.36ID:Fil4ka9J0
>>323
> 乗算と除算の演算順がコンパイラによって変わる
> というのはQZの勘違いな主張で
> 明確に順番は決まってる
エビデンス持って来てからほざけ
336デフォルトの名無しさん (スプッッ Sde3-WMoV)
2020/06/27(土) 12:53:15.33ID:F1FZoULud
>>334
状況によって適切なコードを選ぶべきと思ってるなら別にいい
そうじゃなさそうだったので

「間違ってる」「バグ」「正しくない」という主張じゃなかった?

2分検索が10%しか正しく書けないなんてことはないと思うんだがね
337デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/27(土) 13:02:32.88ID:qKnmoagb0
>>336
>2分検索が10%しか正しく書けないなんてことはないと思うんだがね
そう、ここが気になったんだけど、でももし二分検索を書いたこと無い人がアルゴリズムを見て一発で動作するコードが書けるか?という話なら、案外その程度かもと思ったり。
分割時の端数処理の考慮が不適切でインデックスが変化せず無限ループに陥ったり、検索から抜け落ちる要素が出たり、要素数が0〜2ないし3くらいの範囲でうまく動かなかったり。
ちょっと動かせばすぐ修正点に気付いて動くコードに仕立てられるだろうけど、ぶっつけで動かせるかと言ったら案外難しいんじゃね。
338デフォルトの名無しさん (ワッチョイ 0fda-PIQW)
2020/06/27(土) 14:22:51.51ID:BPJhbq4z0
クイックソートを一発で書けと言われるとちょっとつらい。
あまりにうろ覚えすぎる。

30分待ってやる
と言われれば思い出しながら余裕を持って書ける。かな?

いやどうだろう?
ソートは完璧だろうけど、アルゴリズムはあやしいな
「クイックに似た何かソート」になりそうかも
339◆QZaw55cn4c (ワッチョイ ffe9-W2Vx)
2020/06/27(土) 15:37:58.80ID:vUQmFWhd0
>>296,298-301
些細なことですが、>>296,298,299 の結果は納得いかないです

>int y = (x = 1) + (x = 2);

たしかに gcc/clang とも警告は出ますが、しかしそれはシーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定という意味ですね

しかし演算子 + のオペランドの値は確定していて、すなわち 2 と 5
だから y の値は、この場合は確定的に 7 になるはずです

実際、手元の clang(8,0,1) でコンパイルした場合、結果は y = 7 で上の解釈と合致します。
私は gcc がバグっていると思いました。
340◆QZaw55cn4c (ワッチョイ ffe9-W2Vx)
2020/06/27(土) 15:40:36.38ID:vUQmFWhd0
>>339
×シーケンスポイント間で i を複数回書き込んでいる、という警告で、それは i の値が 2, 5 のいずれかになるか不確定
○シーケンスポイント間で x を複数回書き込んでいる、という警告で、それは x の値が 2, 5 のいずれかになるか不確定
341デフォルトの名無しさん (ガラプー KK83-hH/T)
2020/06/27(土) 16:04:40.17ID:WNNU6Y/YK
既出かもしれんが
>int y = (x = 1) + (x = 2);
演算順は
(x = 1)
(x = 2)
左辺値 x + 左辺値 x
y = その結果
なんじゃないの?
342◆QZaw55cn4c (ワッチョイ ffe9-W2Vx)
2020/06/27(土) 16:14:25.88ID:vUQmFWhd0
>>339
なんだか >>340 だけではなくて、いろいろ間違えまくってますね…ごめんなさい、今日は寝ます
343◆QZaw55cn4c (ワッチョイ ffe9-W2Vx)
2020/06/27(土) 16:26:01.60ID:vUQmFWhd0
>>341 ありがとうございます
JISX0301 の代入演算子をみると
>「6.5.16 セマンティクス「代入式は、代入後の左オペランドの値を持つが、左辺値でない」
つまり
式 x = 2
の値は 2 ではなく x というわけですか…なるほど
344デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 18:53:06.85ID:fF6t87uZa
式の値は x = 1 なら 1 だけど、その式の値が x と同一といわれると微妙な気が
コンパイラによって結果が変わってきそうな気も
345デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 19:00:52.23ID:zYxBmbbI0
数学の変数とプログラムの変数は別物。
346デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:34:42.19ID:5xR8poHP0
そもそもイコールではなくて代入だもんね
347デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 20:36:44.26ID:TsX0h7IG0
比較が =
代入が :=
の方が良かったと思う
348デフォルトの名無しさん (ワッチョイ 8fe6-NJGG)
2020/06/27(土) 20:37:36.35ID:5xR8poHP0
:3
349デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/27(土) 20:39:21.93ID:ItnTp6fM0
>>342
寝るの早いよ!
350デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 20:42:32.55ID:zYxBmbbI0
つ ぴゅう太BASIC
351デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/27(土) 20:44:48.50ID:aqzZKmXR0
>>347
PASCALが嫌いな人が作った言語でか?
352デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:56:58.25ID:YxSvZ5UV0
代入も比較も同じ = 記号なんだけど代入した結果を利用できない言語はあるね。
353デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 20:57:46.41ID:YxSvZ5UV0
あ、ごめん。ないかな?でも作れなくはないか。
354デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:20.32ID:fF6t87uZa
>>353
代入文の言語とか
355デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:01:54.32ID:fF6t87uZa
文は値を持たないから
356デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 21:16:43.71ID:fF6t87uZa
代入式なら
a = b = 0:
は大丈夫だけど、
代入文の言語ではダメ(文法エラー)
卑近な例だと excelVBAとか
357デフォルトの名無しさん (ワッチョイ 4fb3-WMoV)
2020/06/27(土) 21:48:32.85ID:TsX0h7IG0
>>352
BASIC
358デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 21:54:01.50ID:YxSvZ5UV0
あ、そうだ。昔の BASIC がそれだったな。今もそうか。
359デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/27(土) 22:14:52.03ID:8IoNpLP20
Fortranも駄目だった気がする
360デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/27(土) 22:45:34.92ID:3uU6UKGu0
iZ-Cで頑張っている方々もいる。
361デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/27(土) 22:52:26.39ID:Fil4ka9J0
>>359
C言語以前の言語はたいてい駄目だな
例外はLispぐらいかな
362デフォルトの名無しさん (ワッチョイ 3fad-p8b5)
2020/06/27(土) 23:11:39.40ID:YxSvZ5UV0
ま、しかし、本当なら代入は全く違う記号(あるいはワード)使って欲しいところではある。
昔々中学生の頃に初めてBASICのリストを見て A = A + 1 ってなんじゃこりゃと思った事あるし。
普通の数学や算数とルールが違っているのに同じであるかのような記号の使い回しで混乱w
363デフォルトの名無しさん (ガラプー KKb3-hH/T)
2020/06/27(土) 23:17:49.21ID:WNNU6Y/YK
それ小学生のとき見たからすんなり入ってきた
方程式とは違うよってご丁寧に書いてあったし混乱はなかった
364デフォルトの名無しさん (ワッチョイ 3f85-NJGG)
2020/06/27(土) 23:24:19.62ID:zYxBmbbI0
>a = b = 0:
BASICじゃ
bが0なら a=-1
bが0でないなら a=0
だっけ。
365デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:37:39.31ID:fF6t87uZa
そっか、そのとき b = 0 は代入文じゃなくて、値を持つ比較式ですね
文法は間違いでした
366デフォルトの名無しさん (アウアウエー Sabf-TUf5)
2020/06/27(土) 23:38:09.75ID:fF6t87uZa
文法エラーは間違いでした
でした
367デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/28(日) 00:32:47.05ID:akwdxVh60
=は代入が比較より使用頻度が高いので、2文字(=:)が代入だと地味に面倒そう。
368デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/28(日) 07:11:45.70ID:4OGtUBl/0
>>362
APLお勧め
369デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/28(日) 11:47:20.61ID:vGhSDCc20
iZ-Cに反応しないのは素人か。
370デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/28(日) 17:12:13.76ID:8Xgo7zrJ0
>>368
今のAPLはつまんなくなったね
371デフォルトの名無しさん (ワッチョイ 0fda-5fXH)
2020/06/28(日) 21:51:57.49ID:kMbOl++G0
変数名を文字列で取得したいんだけど どうしたらいいかな

printfデバッグとかで、 printf("hogehoge=%d\n",hogehoge); ってやるじゃん?
これをちょっとだけ効率よくしたいけど、マクロでどうにかならん?
372はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/28(日) 21:54:48.80ID:Iks3cRKy0
>>371
マクロ定義のときは識別子に # を付けると識別子を文字列扱いできる。
373蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8f01-c0lz)
2020/06/28(日) 22:04:34.55ID:2DMHRA/z0
#define POUT(x) printf("%s = %d\n", #x, (x))
こんな感じ?
374蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd5f-Oc0l)
2020/06/28(日) 22:18:47.05ID:dcZQFZ1fd
#define POUT(x) printf(#x " = %d\n", (x))
こっちの方がいいか?
375デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/28(日) 22:53:44.96ID:HzcxpANJ0
文字列リテラルの連結は滅多に使わないけど盲点というか
わかってて使うには良いものだね
"aaaa" "bbbb" → "aaaabbbb" として解釈される
376デフォルトの名無しさん (ワッチョイ 7f63-htoQ)
2020/06/28(日) 22:57:59.33ID:qWBhd30v0
>>375
よく使ってました
長い文字列を記述する際に
空白文字ではなく改行文字を入れてたな
377デフォルトの名無しさん (ワッチョイ 4f7f-Tpb5)
2020/06/28(日) 23:05:22.34ID:sygO1Ih/0
usage表示したいときとか普通に使うわ
378デフォルトの名無しさん (スプッッ Sddf-WMoV)
2020/06/29(月) 00:09:50.35ID:eubxXrdwd
私も普通に使う
379デフォルトの名無しさん (ワッチョイ 8f01-/Fs/)
2020/06/29(月) 01:27:56.70ID:C/fQS0GP0
viがバグるのでやめてください。
380デフォルトの名無しさん (ワッチョイ cf05-NJGG)
2020/06/29(月) 08:55:46.03ID:UQIGysI+0
vimはバグらないぞ
381デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 08:57:31.19ID:y9Ww1t9/H
もしかして: vim
382デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 08:58:42.61ID:nBP9TntY0
vimじゃないviには長年世話になったもんだ
383デフォルトの名無しさん (ワッチョイ 0fca-bwNs)
2020/06/29(月) 13:35:04.89ID:rjGVLU620
>>374
書式文字列が常に同じになるケース(>>373)だとコンパイラの最適化で使い回されるようになるけど、
変数名を連結して書式文字列が場所ごとに変わっちゃうと使い回しが効かなくなるから、メモリ使用量とかファイルサイズで不利になるかもね。
前者にしても変数名そのものの文字列は別途定義されるのもあってほんの些細な違いだから、しいて言えばって程度の話だけど。
384デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:01:50.53ID:fw2IFdDxF
and が & と &&
or が | と ||
という具合に bit 演算用と論理演算用で演算子が違いますが

bit 演算の xor は ^ で
int a = 123, b = 456;
のとき a^b と描けますが

論理式の xor はどう描けばいい?
bool u = true, v = true;
のとき u^v と描いても問題無いですか?
385デフォルトの名無しさん (ワッチョイ 0fda-pW1u)
2020/06/29(月) 15:17:39.29ID:TPMqgpKl0
(u != v) で良いのでは?
386デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:25:14.45ID:fw2IFdDxF
bool に 0 と !0 以外が入ってても大丈夫ですか?
387デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:27:23.97ID:fw2IFdDxF
もし御存じの方がいらっしゃったらで良いのですが
"u ^^ v" みたいな演算子が無い理由も知りたいです
問題後出しで済みません
388デフォルトの名無しさん (JP 0H43-R4wo)
2020/06/29(月) 15:37:10.60ID:y9Ww1t9/H
ビットごとのxorは暗号とかで多用するけど、
論理式のxor(一方のみ真)はめったに使わないからかと。

!u != !v が最小かな。
389デフォルトの名無しさん (エムゾネ FF5f-qwRG)
2020/06/29(月) 15:41:17.96ID:fw2IFdDxF
ありがとうございました
390デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 16:32:31.26ID:nBP9TntY0
関係演算子の結果はint型の1か0なんだから
a < 124 ^ b < 456 でもいいはず
391デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:07:26.21ID:TPMqgpKl0
C99以降のbool型(_Bool型)の値はfalse(0)とtrue(1)のどちらかしか取り得ない
変数や式の評価が0以外の場合はすべて1に変換される
評価結果の値が不明の場合はbool型にキャストすると良い
(bool)u != (bool)v
392はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 17:12:09.58ID:vApDDB4S0
イディオムとしては !! を付ける (否定を二回やる) というのもよく知られている。
(見づらいので良くないという意見もある。)
393デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/29(月) 17:19:40.81ID:nBP9TntY0
!!は厨二病臭くて俺はあんまりやらないが
この程度で読みづらいとか言い出すスキル不足なやつに迎合する意図は毛頭ない
394デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 17:24:25.71ID:TPMqgpKl0
適当サンプルプログラム
C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚
395デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 17:44:20.33ID:1Lbf5C9Kd
0, !0 意外の値が入ってた場合にどんな結果を期待するかによる
396デフォルトの名無しさん (ワッチョイ 8f46-rLul)
2020/06/29(月) 17:55:06.30ID:I0J8qHbO0
禅問答かよ。
397デフォルトの名無しさん (ワッチョイ 3f01-76DX)
2020/06/29(月) 19:26:41.50ID:xaDJZCCE0
>>395
話の流れぐらい読めよ…
>>385が成立するかどうかだろ
398デフォルトの名無しさん (JP 0Hbf-EqIm)
2020/06/29(月) 19:30:21.97ID:rBtTXcyIH
C言語に使ってるエディタとかIDEとか教えてください
OSとかの環境もあるとありがたい
399デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 19:31:22.68ID:JUEjBXx8d
EDLIN
400デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 19:59:21.99ID:x9/2kcfz0
>>398
C言語を何に使うかによって全然違うと思うけど
401デフォルトの名無しさん (スップ Sddf-WMoV)
2020/06/29(月) 20:00:40.16ID:JUEjBXx8d
何に使うかでそんなに変わるか?
402デフォルトの名無しさん (アウアウエー Sabf-PKxn)
2020/06/29(月) 20:03:09.44ID:6d9dL1u1a
C言語でエンドルフィンの造出をアヘアヘ
403◆QZaw55cn4c (ワッチョイ cf98-W2Vx)
2020/06/29(月) 20:05:23.72ID:w+wTil7e0
>>398
コンパイラ:cygwin の中の mingw32
エディタ:xyzzy
あと cygwin の make
404デフォルトの名無しさん (ワッチョイ 0f01-5fXH)
2020/06/29(月) 20:13:09.53ID:o6pktO+O0
学習用途で ideone や codepad 規模で済むなら Webブラウザ
405デフォルトの名無しさん (ワッチョイ 0fda-vVPI)
2020/06/29(月) 20:21:56.62ID:TPMqgpKl0
>>398
VisualStudioCodeの統合ターミナルでWindows10のWSL2利用
参考として>>394の環境は以下の通り
C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚
406はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 0f3e-NJGG)
2020/06/29(月) 20:23:46.01ID:vApDDB4S0
>>398
OS: Windows10
コンパイラ: gcc と clang (msys2 の pacman で入るやつ)
       その他に Open Watcom C とか LCC (LSI-C じゃなくて Little C Compiler ね) とか
エディタ: Emacs
407デフォルトの名無しさん (ワッチョイ 8fe6-vKxb)
2020/06/29(月) 20:24:01.34ID:x9/2kcfz0
初学の時、H8に書くとき、arduinoに書くとき、それぞれ全部違ったわ。
408デフォルトの名無しさん (ワッチョイ 8f14-5Vex)
2020/06/29(月) 21:14:11.50ID:Gzb8Tiox0
>>398
OS:Linux(Fedora32)
コンパイラ:gcc
エディタ:vim
409デフォルトの名無しさん (ワッチョイ ff8c-ZANo)
2020/06/29(月) 21:49:44.45ID:uavgiC7w0
適切な問題とヒントが一番大事。
410デフォルトの名無しさん (ワッチョイ 3f0e-NJGG)
2020/06/30(火) 06:48:50.33ID:W+MWiusu0
>>398
秀丸
411デフォルトの名無しさん (ワッチョイ cf2c-wMgy)
2020/06/30(火) 07:20:47.85ID:ojYrCHBE0
漏れは、Windows 10, WSL, Ubuntu 18.04 で、
VSCode の拡張機能、Remote WSL も使う

Linux側には、日本人が作った、バージョンマネージャーのanyenv で、rbenv, nodenv を使って、
ruby 2.6.6, node 12.16.2 を、build-essential で、コンパイルして入れた

yarn は、Windows側に入れて、WSL から、拡張子なしのyarn コマンドを呼べる。
これは、#!/bin/sh で始まるシェルスクリプト

anyenv は多言語向きで、rbenv, nodenv, pyenv, phpenv などを同じ使い方で、統一的に扱える

build-essential には、
gcc(GNU C compiler), g++(GNU C++ compiler), libc6-dev(GNU C Library), make などが入っています

パッケージ: build-essential
https://packages.ubuntu.com/ja/bionic/build-essential
412デフォルトの名無しさん (ラクッペペ MM4f-pW1u)
2020/06/30(火) 11:26:03.93ID:Xg3HKp34M
build-essential以外はC言語には関係ないな
413デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/02(木) 09:18:11.06ID:1XrTO7+60
Cに限らず汎用で使える開発環境で色々やってるってことかと。

俺も基本的にはvimとmakeで何でもやる。
vimの中でとりあえず :make と打ってQuickFix機能でエラー修正。
上手く拾ってくれない時は ~/.vimrc で errorformat 変数に追加。

>>398 の人はOSも知りたいってことなので追加。
Linuxのウィンドウ環境使わないコンソールでfbterm(日本語表示用)。
ツール類はディストリビューションに入ってた奴。
414デフォルトの名無しさん (JP 0H42-2vAA)
2020/07/06(月) 17:38:55.00ID:6O25/+p5H
int main (void)
{ char a[256];
printf("Enter a string:");
scanf("%s", a);

(以下略)
勉強中に上のような「キーボード入力からchar型配列に文字列を格納する」という処理を見かけました
この例だと(ヌル文字含め)256文字以上の文字が入力されたときはその後の処理が正常にできなくなりますよね
現実的には値を充分大きく指定しておけば問題はないのでしょうが、入力された文字数に応じて要素数を適切に設定したりはできないのでしょうか?
415はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/06(月) 17:43:57.76ID:Js6m+wFY0
>>414
出来るけど、そのレベルの初心者にきちんとしたやり方を説明するのは難しいので
とりあえず入門書を最後まで読んでからにして。
416デフォルトの名無しさん (ワッチョイ 2705-VQSO)
2020/07/06(月) 19:26:19.29ID:y838Udr90
>>414
scanf("%255s", a);
とか書いとけばいーんだよ こんなもん
scanf使うなとか言うアマチュアは脳死
417デフォルトの名無しさん (ワッチョイ 1e63-BXkI)
2020/07/06(月) 19:39:29.44ID:A/JwDwXO0
後続処理で問題が起きる
418デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 19:40:44.58ID:X9mxW4kC0
a[255]=0;
419デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:42:40.45ID:sDUgop1M0
scanfは入力ミスでへんな無限ループに陥ったことがあるからなぁ。
420デフォルトの名無しさん (ワッチョイ 2fb3-mf8G)
2020/07/06(月) 20:45:13.65ID:X9mxW4kC0
それはscanfの問題?
421デフォルトの名無しさん (ワッチョイ 6a77-VQSO)
2020/07/06(月) 20:50:02.85ID:sDUgop1M0
入力バッファに改行が残って云々ってことらしい。
422デフォルトの名無しさん (ワッチョイ 0a0e-VQSO)
2020/07/07(火) 06:45:34.69ID:hl3O6vw80
scanfの問題ではないね
!=EOFなんて書くバカが100%悪い
423デフォルトの名無しさん (ラクッペペ MMc6-fHqu)
2020/07/07(火) 07:24:10.77ID:stuZ2AfxM
入力バッファに残った改行コードが問題の場合は fflush(stdin) で吐き出さないとどうにもならない
424デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 07:43:16.74ID:bJbvn87/0
fflush() が確実に効くのは出力ストリームだけでしょ。
stdin でも使える独自拡張された環境もあるか知れんけど。
425デフォルトの名無しさん (ワッチョイ 1ed2-VQSO)
2020/07/07(火) 07:54:27.38ID:p6ZLMZTk0
scanf前にバッファクリアするコードあったけど、
そういうやつってパイプやリダイレクトつかっても正常作動するの?
426デフォルトの名無しさん (ラクッペペ MMc6-06wU)
2020/07/07(火) 11:09:20.23ID:qR67pRFEM
パイプやリダイレクトか判定する方法がOSによって提供されてる環境なら問題ない
427はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 6b3e-VQSO)
2020/07/07(火) 12:04:22.54ID:tzlORGl20
方法が用意されててもそれをきちんと利用してるソフトが少なかったら意味ないぞ。
428デフォルトの名無しさん (スッップ Sdaa-mf8G)
2020/07/07(火) 12:19:33.35ID:/8q6WRwjd
scanfをそのまま不特定多数が使うソフトに入れることなんかないんだから

正しく入力してください
で終わる
429デフォルトの名無しさん (スップ Sd4a-xROu)
2020/07/07(火) 13:58:40.76ID:OPOprIbsd
scanfを何に使うかという話と
仕様を理解して使うという話は
別問題だ
430デフォルトの名無しさん (エムゾネ FFaa-A0XE)
2020/07/07(火) 14:00:00.91ID:092JXqIfF
>>416
scanf("%*s", 255, a);
みたいなのなかったっけ
うろ覚え
431デフォルトの名無しさん (ワッチョイ ab7b-06wU)
2020/07/07(火) 16:19:53.16ID:bJbvn87/0
scanf には * の指定子ないんだわ。
432デフォルトの名無しさん (アウアウウー Sacf-Im8i)
2020/07/07(火) 18:32:30.56ID:e1WbjzO/a
* には別の意味がある。
433デフォルトの名無しさん (ワッチョイ 6b01-Wiu6)
2020/07/07(火) 19:29:43.35ID:USscR6RS0
引き数から引っ張ってくる * がないとなると
sprintf で scanf フォーマット文字列を作るということになる?のか?
434◆QZaw55cn4c (BR 0Haa-0EX8)
2020/07/07(火) 20:01:20.05ID:7uEBIb8CH
>>423
それは環境依存
435431 (ワッチョイ 857b-4PPV)
2020/07/08(水) 06:21:59.38ID:sJ2uy93A0
>>432
scanf の * 書式指定子は「読み捨て」の指示だったね。
printf の * とは使い方が違うけど、ちゃんとある。
…存在をすっかり忘れてたよ。ありがとう。


>>433
カーニハン&パイクの『プログラミング作法』には
sprintfで書式指定文字列を作る方法が載ってるね。
下に示す例に比べれば手軽で分かりやすい。

入力文字幅がコンパイル時固定ならマクロを駆使して…

// マクロ名を「マクロの内容を表す文字列」に変換するマクロ関数
#define MACRO_TO_STR_SUB(name) #name
#define MACRO_TO_STR(name) MACRO_TO_STR_SUB(name)

#define WIDTH 15 // 入力制限字数(末尾の'\0'を含まない)

 char buf[WIDTH+1]; // +1 for '\0'
 scanf("%" MACRO_TO_STR(WIDTH) "s", buf);

こんな感じにできるけど、面倒でしょ。
436デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 06:35:08.91ID:SF9V14yC0
char fmt[(size_t)floor(log10(~(size_t)0) + 1) + 3];

char buf[256];
sprintf(fmt, "%%%llus", sizeof buf - 1);

scanf(fmt, buf);
437デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 09:30:02.93ID:hADFKHguF
>>435
scanf("%" #WIDTH "s", buf);
じゃだめなんですか?
438デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:07:58.22ID:SF9V14yC0
単項#はマクロの中でしか使えない
439デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/08(水) 10:11:35.43ID:hADFKHguF
#define MACRO_TO_STR(name) #name

そもそもこれもだめなんですね
440デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 10:34:21.44ID:SF9V14yC0
んなわけねえだろ
なんでやねん
441デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/08(水) 10:59:20.81ID:g3a6T0uX0
後でメンテが大変だぞ
半年経ったら、今の自分が他人になる
442デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/08(水) 11:22:06.26ID:woPNJQ5aH
IT掲示板群 http://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ http://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
http://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
http://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
http://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
http://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
http://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
http://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
http://x0000.net/topic.aspx?id=3675-0

☆ VMを書いた(C#) * x86ではない!
http://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
http://up.x0000.net/files/TMallocTest.zip
443デフォルトの名無しさん (ワッチョイ cb69-6wWl)
2020/07/08(水) 11:45:14.69ID:KKQXIGLi0
#define WIDTH 10
#define MACRO_TO_STR(name) #name

MACRO_TO_STR(WIDTH)
は渡された識別子をそのまま文字列化するので "WIDTH" になる

マクロWIDTHを展開した後での文字 "10" が欲しいときは >>435 のように
一見無駄に見えるマクロのピンポンを行なう
444デフォルトの名無しさん (スップ Sd03-rJjo)
2020/07/08(水) 11:48:56.64ID:l8qeRlOJd
x0000.netをNGっと
445デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 12:22:54.79ID:SF9V14yC0
ああ、そういうことか
解説dx
446デフォルトの名無しさん (ワッチョイ 35e6-ucCN)
2020/07/08(水) 13:27:10.12ID:0ZaAZSr60
>>428
その「正しく入力してください」に至らないのが今回の話題
447デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/08(水) 16:37:27.08ID:mO8IXR2n0
>>444
まだやってなかったのか?
448デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/08(水) 17:48:03.59ID:T5O+XOTRd
>>446
ん?
コードで表示しろって言ってるんじゃない
クレームが来たらその人に対して言えってこと

つまり
不正入力時の動作は不定がソフトの仕様
で問題ないだろってこと
449デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:06:49.38ID:EQ9tLW1C0
不正入力ではなくてコンソールと入力バッファの仕様が問題
標準入力stdinがキーボードの場合入力バッファには目的とする文字コードの直後に必ず改行コードが残る
scanfの書式が%dなどの数値型だと改行は取り込まれないので数値型を連続して使用した場合は型が合わずに続くデータを取りこぼす
450デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/08(水) 18:11:07.83ID:SF9V14yC0
ん、%dは先行する空白類文字をスキップするぞ
451デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/08(水) 18:25:39.71ID:QndvSIjd0
>>449
正しい入力で正しく動かないならそれはバグだよ
452デフォルトの名無しさん (ワッチョイ a5da-1Cui)
2020/07/08(水) 18:29:27.69ID:EQ9tLW1C0
訂正
たしかに数値型だけなら問題はないね
数値型と文字型の混在時に問題が起きる

scanf("%d", &x); // 数値 + 改行
...
scanf("%c", &y); // 必ず直前の改行となるので入力不可
...
scanf("%d", &z); // 数値 + 改行
453デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 09:32:01.69ID:vrNDocOmF
無理にscanf使わずに
fgetsとsscanfやろ
454デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 09:45:13.42ID:jzluGOwX0
またアホが湧いた
455デフォルトの名無しさん (ワッチョイ 23ad-Bqa1)
2020/07/09(木) 09:51:17.63ID:RjpwDZh+0
Windows10proでC使いたいんです。
目的は大量のテキストデータの変換なので、
グラフィックとか音とかはプログラミングしません。

テキストでコーディングして、
CUIで実行ってな感じができればいいんですけど、
このぐらいだとMinGWが適当なんでしょうか?
456デフォルトの名無しさん (ワッチョイ ad7c-jFjK)
2020/07/09(木) 09:57:12.39ID:uQo6bqoB0
tdm-gcc
457デフォルトの名無しさん (ワッチョイ 23a5-T5iX)
2020/07/09(木) 09:57:39.86ID:f5aLRaXK0
https://www.gnu.org/software/coreutils/coreutils.html

このツールをDLしてwindowsフォルダに全部入れる
458デフォルトの名無しさん (ワッチョイ 233d-Bqa1)
2020/07/09(木) 10:57:01.79ID:g1m/M0Pb0
>>453
プログラミングの教育現場では、未だにscanf()が使われているんだ
この関数の欠陥部分も含めて教育の題材にはいいんじゃないかな
459デフォルトの名無しさん (アウウィフ FF09-VqvP)
2020/07/09(木) 11:04:23.27ID:vrNDocOmF
一行目も二行目も知ってる
460デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 12:36:53.26ID:ccQ+p+MVM
>>454
>>453は正しいだろ

>>458
対策しようのない欠陥だから唯一できる教育は「使うな」しかないけどね
461デフォルトの名無しさん (スップ Sd43-Tflg)
2020/07/09(木) 12:39:21.11ID:zi4hgNgDd
初心者教育でとりあえずコードを書い動かしてみる
でscanfじゃなきゃ何を使えって?
462デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:41:37.65ID:jzluGOwX0
>>460
対策しようのない欠陥と自分で言いながら何が正しいとぬかす?
463蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd43-FiFk)
2020/07/09(木) 12:42:19.97ID:2UhyUN9nd
fgets
464デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:48:17.81ID:jzluGOwX0
配列もFILE構造体も教えてない時点でfgetsとsscanfとか無理だろ
逆にこの辺まで教えてまだ実用的な入力関数が作れないようなら教え方が下手すぎ
465デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 12:49:49.88ID:jzluGOwX0
つーか、その被害者がいつまでもfgetsとsscanfにしがみついたまま進歩しないんだろうが
466デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:17:37.22ID:ccQ+p+MVM
>>462
対策しようがないから使わず他の関数使う
って話なんだが、理解できないのか?w
467デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 15:18:31.71ID:ccQ+p+MVM
>>465
お前みたいな老害はそうなのかもなw
468デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 16:18:37.55ID:jzluGOwX0
>>467
fscanfとsscanfにしがみついてるのはお前
俺はそんなアホなことしてない
469デフォルトの名無しさん (エムゾネ FF43-VqvP)
2020/07/09(木) 16:39:16.37ID:8CMntJuyF
scanf要らねと思ったら後はgetcharで何でも出来るだろ
470デフォルトの名無しさん (ドコグロ MMa9-65sm)
2020/07/09(木) 18:22:16.49ID:EQDklninM
>>468
ならいいじゃん
お前以下の奴なんてめったにいないんだしw
471デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 18:51:05.00ID:jzluGOwX0
>>470
罵倒だけのレスもらうと優越感で気持ちいいわ
472デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/09(木) 19:04:00.56ID:g5p2N13I0
代案出さずに否定だけって
ダサい
473デフォルトの名無しさん (ドコグロ MM93-65sm)
2020/07/09(木) 19:22:40.81ID:0UE7wqUeM
罵倒だけの>>468みたいなレスを見ても別に優越感なんて感じないけどね
むしろ憐れみしか感じないw
474デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:17:48.63ID:jzluGOwX0
>>473
まあいいからfgetsとsscanfにしがみついてろよ
俺がどうかしてやる筋合いないし勝手にしな
475デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/09(木) 21:18:33.10ID:jzluGOwX0
ここ技術板だぜ? 少なくとも何らか専門用語入れようや
476デフォルトの名無しさん (ワッチョイ 2301-65sm)
2020/07/09(木) 22:17:39.65ID:bcr0ax7J0
> 罵倒だけのレスもらうと優越感で気持ちいいわ
どこに専門用語があるんだろう…?
ますます哀れに思えてきたわw
477デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 06:59:30.23ID:d1dEL6aU0
技術的な話で突っ込めなくなってる無様な姿が最高の褒め言葉さ
478デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:01:07.48ID:d1dEL6aU0
fgetsとsscanfを使うのが正しい!と強弁してるだけで説得力ねえんだよ
479デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 07:40:55.73ID:qqWcHkmP0
>>478
scanf使うならfgetsとsscanf使えって話が出ただけでないの?
480デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:44:14.14ID:d1dEL6aU0
scanfの使い方の話をしてたんだよ
そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た
481デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 07:49:10.16ID:d1dEL6aU0
464あたりでscanfを使う理由をちゃんと説明しているのに
そこは無視してくだらねえ戯れ言ばかりぬかしやがる
482デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 07:54:54.37ID:7RoGj1wV0
>>464はscanfを使う理由ではない
483デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 08:08:34.80ID:d1dEL6aU0
だから何の説明もなしにdisっても説得力ねえんだってば
484デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:09:27.01ID:a7Xsl7M10
scanf使いたいなら割り切って使うか、それで起こる問題を解決したいなら別の関数使えって流れじゃないの?
モメるポイントが分からんのだが。
485デフォルトの名無しさん (ワッチョイ 857b-4PPV)
2020/07/10(金) 08:10:39.67ID:bFyJThgA0
>>414 の質問に戻ると getchar あたりで1字ずつ拾いながら
必要に応じてバッファを拡張する方法になるのかねぇ。
%s の機能だけなら空白と空白以外だけ考慮すりゃいいわけで。

ロケールまで対応させるとこれまた大変そうだけど。
486デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 08:22:02.59ID:a7Xsl7M10
>>485
入力した文字列を何に使うのか次第だろう。
入力すること自体は手段であって目的ではないのだから。
オンメモリに全部展開しないといけない用途なのか?
ハッシュを求めるために計算済みの値は捨てていいのか?
暗号化のために一定のブロック長があればいいのか?
適した方法はそれぞれ異なる。
んでその当初の質問の答えは既に出てるし。
487デフォルトの名無しさん (ワッチョイ e31e-x8q3)
2020/07/10(金) 09:04:58.78ID:lyRh4kcU0
「getchar あたりで1字ずつ拾いながら」
ってことを経た後でないと scanf を正しく使うのは難しいんじゃないかな。
488デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 11:08:56.61ID:2/CcitmbF
>>480
>scanfの使い方の話をしてたんだよ
>そこへ付いて来れないからって他の関数を使えと話を逸らしに来たやつがいて
>アホつったら何の説明もなしにfgetsとsscanfを使うのが正しいと強弁する別のアホが来た

ここだけ読むと >>480 がただのアスペでコミュ障にしかみえない
489デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:21:34.56ID:qqWcHkmP0
>>488
実際そうかなと思うよ。他の人の話の興味が移ってきてるのにじずんの言いたいことが正しい
490デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 11:22:21.30ID:qqWcHkmP0
途中で書き込んでしまった。
自分の言いたいことが正しい、他のことを話す奴は理会できてないって思考なんだろう。
491デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 11:37:03.81ID:g0Z+ZvbJa
めんどくせえから GNU のライブラリにある getline() でも使っとけよ。
1行がどんなに長くてもメモリが許す限りどんどん読んでくれるぞ。
492デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 11:47:09.11ID:MPjC4RwwM
関数を呼び出す側が、使用するメモリの上限をコントロールできないというのは
それはそれで微妙にリスク
493デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:00:38.40ID:g0Z+ZvbJa
じゃあfgets()で。
494デフォルトの名無しさん (ワッチョイ cbd2-ucCN)
2020/07/10(金) 12:23:02.32ID:y8IP2wTs0
誰にも迷惑かからないところでどう使おうかは自由だな。
495デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:23:50.72ID:d1dEL6aU0
>>488
ここは技術板だ
アスペの話がしたいカナーはメンヘル板か医者板へ逝け
496デフォルトの名無しさん (ワッチョイ 05ca-L1/G)
2020/07/10(金) 12:26:34.82ID:a7Xsl7M10
>>495
scanf の使い方の話は終わってね?
議論したい点として何が残ってるの?
497デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:28:13.10ID:d1dEL6aU0
>>496
あんたに何の権限があってそんな命令するんだよ
余計な口だしはしないでもらおうか
498デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:28:33.38ID:6/cNdm0nd
入門書でscanfを扱うのが適切か否か
499デフォルトの名無しさん (アウウィフ FF09-jFjK)
2020/07/10(金) 12:31:35.35ID:2/CcitmbF
getchar()からが良い
scanf()は反面教師
500デフォルトの名無しさん (スップ Sd03-Tflg)
2020/07/10(金) 12:32:24.53ID:6/cNdm0nd
数値入力にたどりつくまでえらい大変だな
501デフォルトの名無しさん (アウアウウー Sa09-Sz3q)
2020/07/10(金) 12:45:54.18ID:Y8Yy4fdKa
まあ、scanf()の%sだけが問題なんだよな。
502デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 12:47:54.13ID:d1dEL6aU0
>>499
人の話を完全に無視して同じことばかり呟き続けやがって
ほら、どでかいブーメラン返してやんよ
> アスペでコミュ障
503デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/10(金) 12:55:06.27ID:qqWcHkmP0
>>498
入門書のプログラムは基本的に使うのは読者本人だから、お手軽な入力処理として使うのはありだと思う。ただ、使い方の注意点は簡単に補足しておいてほしいかな。知らずに、固まった!バグだ!とか騒いだりしないように。
それと、入門書の時点で堅牢な入力処理なんて必要ではないけど、将来的に実用的なプログラムを作るときには必要になってくるということを触れておいてほしい。
504デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 13:37:44.03ID:d1dEL6aU0
>>500
ほんこれ

連中はこの指摘に答えられない
だからレスがない
505デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/10(金) 13:40:12.53ID:pQ428/DjH
IT掲示板群 http://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ http://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
http://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
http://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
http://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
http://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
http://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
http://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
http://x0000.net/topic.aspx?id=3675-0

☆ VMを書いた(C#) * x86ではない!
http://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
http://up.x0000.net/files/TMallocTest.zip
506デフォルトの名無しさん (ワッチョイ 0391-LoFw)
2020/07/10(金) 13:54:36.12ID:cHuUURyg0
俺に聞け! ってだけで
回答するとは言っていない
507デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/10(金) 14:21:32.04ID:/uHfdbTha
確かに>>1の概要欄にも答えるとは一文字も書かれて無いw
508デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/10(金) 18:44:30.98ID:d1dEL6aU0
そこへ逃げるかwww
509デフォルトの名無しさん (オイコラミネオ MM51-L1/G)
2020/07/10(金) 18:55:09.14ID:rYXxVyEBM
>>508
逃げるもなにも、scanfの話なんて出尽くしてるじゃん。
他になにを話したいの?
役に立たないことブツブツ言ってないで話を振ればいいじゃん。
510デフォルトの名無しさん (ワッチョイ 0db3-Tflg)
2020/07/10(金) 19:00:44.43ID:7RoGj1wV0
言い出しっぺの法則
511◆QZaw55cn4c (BR 0H8b-Djmq)
2020/07/10(金) 19:19:20.65ID:Y3MlsMegH
>>491
そういうのが欲しくて自分で書いてしまったんですけど、すでにあるんですね…そう思う人は結構いるってことですね

>>492
getline() の中の malloc() が失敗したことがわかるんだったら、私は問題にしないですね
512デフォルトの名無しさん (オイコラミネオ MM51-mXGD)
2020/07/10(金) 22:08:00.13ID:edpv1F1UM
>>511
QZ先生がどのくらいのリスクを前提に言っているのかにもよりますけど、
上限なき malloc については、リスク回避の点で、私はやっぱり問題にしたいですねえ。

おっしゃる通り、malloc が失敗を返した場合は概ね問題ないと思うのですが。
逆に malloc が成功を返した場合はどうです?
共有リソースとしてのメモリを奪いきってしまった結果としての成功であるなら、
OSによっては、他のプロセスのメモリ確保失敗に伴う致命的エラーを誘発するなどして、
広範囲な問題を引き起こすやもしれません。

先人の知恵として、システムコールやAPIの仕様として、インターフェイスにせよ、内部的にせよ、上限を設けてあると思います。
getline の内部は見てないのですが、極端に大きなサイズになりそうなら、malloc を呼び出す前に、
上限値を超えました的なエラーを返すような、慎重なコーディングになっていることを期待したいところです
513はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 053e-ucCN)
2020/07/10(金) 23:07:47.23ID:HDImBgbn0
>>511
実行環境に固有の特殊事情ではあるけど
Linux だとメモリが足りなくても malloc が成功する場合がある。 (オーバーコミット)
malloc の返り値を気にしても無駄。

想定以上の巨大な行の読み込み (メモリ割り当ての失敗) に対して
何か対処する機会なくプロセスごと殺される (OOM Killer) かもしれないので、
想定する上限があるなら設定できて欲しいよ。
514デフォルトの名無しさん (ワッチョイ 2301-LRpg)
2020/07/11(土) 00:41:24.74ID:UdJEarb20
ドライバレベルの仕様に詳しい人って、そこそこ不幸だよね😅
515デフォルトの名無しさん (ワッチョイ cb63-56/R)
2020/07/11(土) 00:58:32.96ID:YkgvwUMV0
誰かが特攻隊に志願しないと行けないからな
516デフォルトの名無しさん (ワッチョイ 45bd-L1/G)
2020/07/11(土) 04:47:05.81ID:dhYEJgZ00
>>513
メモリを確保するだけじゃなく中身を詰めて返すから、内部でメモリ量を超える malloc に成功しながら中身を詰めてる過程でメモリ不足で落ちそうだね。
上限設けてないと回避できない深刻な問題になりそう。
517デフォルトの名無しさん (ワッチョイ 8510-YwU+)
2020/07/11(土) 20:25:40.62ID:3ggQxlyq0
mallocはウィザードリィみたいだよな
518デフォルトの名無しさん (ワッチョイ 6352-PJiH)
2020/07/12(日) 11:24:42.19ID:VdrMQ+ag0
>>517
どの辺が?
519デフォルトの名無しさん (ワッチョイ 05da-mXGD)
2020/07/12(日) 12:22:43.74ID:pMv4WACh0
>>518
岩の中にテレポートしそうなあたりじゃないかな
520デフォルトの名無しさん (ワッチョイ 75b0-ucCN)
2020/07/12(日) 12:31:19.68ID:lQJaWZP00
そういえば、初期のosxはオーバーコミットと動的スワップの合わせ技で、ディスクの空き容量が
少ないとよく固まってたな。しかもfinderではまだ空きがあるように見えても実際には最小空き容量に
引っかかるという油断のならない仕様だった。
521デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 14:47:47.78ID:RLT83ouV0
マクロを使った面白いコードを教えてください
522デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/12(日) 14:50:59.64ID:uGVzSaa20
先に面白いの判定基準を出せ
523デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 14:55:11.44ID:RLT83ouV0
>>522
トリッキーなやつで普段お目にかかれないやつです
524デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 16:14:17.46ID:TX1mpKr60
>>523
こういうの?
http://www.ioccc.org/2019/ciura/prog.c
525デフォルトの名無しさん (ワッチョイ fdbb-mXGD)
2020/07/12(日) 16:26:56.92ID:RLT83ouV0
>>524
いいですね
これは何をやってるコードですか?
526デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 16:34:02.06ID:TX1mpKr60
自分で解読しなきゃ
他人に聞いたら意味ないよ
527デフォルトの名無しさん (ワッチョイ 7546-Dz1Y)
2020/07/12(日) 18:07:11.46ID:eOx5QXnj0
>>524
殺意湧くコードだわ。
信じられないだろうが、こういうの書きたがるやつ沢山居る。
528デフォルトの名無しさん (ブーイモ MM99-Kmjx)
2020/07/12(日) 19:01:50.30ID:XR2tpNWXM
落ち着け、IOCCC知らんのか
529デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/12(日) 19:40:25.98ID:uGVzSaa20
昔観た砂嵐のもこんなんだったな
マクロ使ってたかどうかは覚えてないけど
いずれにしても中身に意味があるとは思えない
530デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/12(日) 19:48:29.22ID:TX1mpKr60
地上波アナログ?
531デフォルトの名無しさん (ワッチョイ ab7c-jFjK)
2020/07/13(月) 09:07:37.15ID:+mCuetAH0
落ち着け、IOCCC知らんのか
532デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/13(月) 11:02:55.12ID:wLJMlZf60
わざと解りにくく書いたコードだぞ
「ちゃんと動くプログラム」という制約のもとで
解りにくさを競っているんだよ
533デフォルトの名無しさん (アウアウエー Sa13-c9t6)
2020/07/13(月) 11:11:26.83ID:Q6XHo6fua
>>525
岩の中にテレポートしそうなあたりじゃないかな
534デフォルトの名無しさん (スッップ Sd43-Tflg)
2020/07/13(月) 12:02:49.97ID:JZTlaHWid
>>527
素人かよ
535デフォルトの名無しさん (エムゾネ FF43-jFjK)
2020/07/13(月) 12:06:46.27ID:WBkWHxcTF
>>527 本人じゃないけど
成型ツールで戻せば良いとか言うレベルじゃなくて
マジックナンバー使いまくりの手動最適化コードとか
読み難くする以外のメリットなんにも無い時間の無駄
難読化ツールとかの話も関係無い
536デフォルトの名無しさん (スッップ Sd43-Tflg)
2020/07/13(月) 12:12:02.64ID:JZTlaHWid
人間が読む事を想定してないコード
なんていう発想は無いのか
537デフォルトの名無しさん (ワッチョイ 230e-ucCN)
2020/07/13(月) 12:18:07.92ID:wLJMlZf60
機械語がそうだね
538デフォルトの名無しさん (ワッチョイ cbd2-ucCN)
2020/07/13(月) 12:20:50.91ID:HqaSJoay0
難読ソースコンテストってのがあるって25年前に聞いた。
539デフォルトの名無しさん (エムゾネ FF43-jFjK)
2020/07/13(月) 12:22:42.17ID:WBkWHxcTF
どんなネタでも餌にして生きていける人って別の意味で浦山
540デフォルトの名無しさん (ワッチョイ 857b-4PPV)
2020/07/13(月) 12:39:50.37ID:17o/9bhC0
って言うか >>1 でリンク張られてるサイト
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
の 20.36 が 国際難解Cコードコンテスト(IOCCC) の紹介ですよ。

まぁ知らなくても実用では少しも困らないネタ話だけどね。
541デフォルトの名無しさん (JP 0H93-4zP6)
2020/07/13(月) 13:06:29.12ID:UIoR1/02H
IT掲示板群 http://x0000.net/forum.aspx?id=15

学術の巨大掲示板群 - アルファ・ラボ http://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など

simulationライブラリで純粋な関数式プログラミングをする
http://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
http://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
http://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
http://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
http://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
http://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
http://x0000.net/topic.aspx?id=3675-0

☆ VMを書いた(C#) * x86ではない!
http://up.x0000.net/files/TSimulang.zip
☆ malloc / free を実装してみた (C#)
http://up.x0000.net/files/TMallocTest.zip
542デフォルトの名無しさん (ワッチョイ 23ad-skOr)
2020/07/13(月) 23:11:58.86ID:9EBd4T6S0
>>540
読み方は?
543デフォルトの名無しさん (スップ Sdda-BbQx)
2020/07/15(水) 14:29:54.86ID:U8iX10oDd
あいおーしーしーしー
544デフォルトの名無しさん (ワッチョイ 5510-Zd+S)
2020/07/15(水) 15:00:37.70ID:67nW9VWC0
催し物やな
545デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 15:52:55.55ID:N3ltiDOr0
市民館みたいなとこでやってるわけじゃないがな
546デフォルトの名無しさん (ワッチョイ daad-0yBj)
2020/07/15(水) 20:44:36.96ID:pJ20MS8a0
CCCの部分はトリプルCではなく?
547デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 20:50:18.41ID:N3ltiDOr0
うん、トリプルって読み方する人には会ったことがないな
548デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/15(水) 20:50:51.37ID:N3ltiDOr0
あいとりぷるいーは普通だけど
549デフォルトの名無しさん (ブーイモ MMde-cWPK)
2020/07/15(水) 21:08:27.18ID:a3wypoikM
このクイズ番組の回答者が読み方喋ってる

550デフォルトの名無しさん (ワッチョイ 41b3-6M5R)
2020/07/15(水) 21:53:44.85ID:JGqdiMCl0
>>548
イエーー
が正しい
551デフォルトの名無しさん (アウアウエー Sa02-l+/r)
2020/07/16(木) 00:44:59.58ID:ZFOOaYp/a
>>546
カルチュアコンビニエンスクラブ
552デフォルトの名無しさん (ワッチョイ 9de6-YsWi)
2020/07/16(木) 04:02:23.42ID:CYft8xDJ0
>>550
イェェェ!!
553デフォルトの名無しさん (ワッチョイ 6905-YsWi)
2020/07/16(木) 09:30:43.69ID:UNVzIGjY0
>>548
イエエエ!
554デフォルトの名無しさん (ワッチョイ ee8c-+zMD)
2020/07/16(木) 09:34:53.50ID:+sr/NO6P0
>>548
アイドルぷりぷり
555デフォルトの名無しさん (ワッチョイ daad-YsWi)
2020/07/16(木) 22:21:03.87ID:HOuHYCld0
東京が goto キャンペーンから外されて本当に良かった。
556◆QZaw55cn4c (NZ 0H42-Hpaz)
2020/07/16(木) 22:33:48.51ID:g74RUxa7H
>>555
goto hell キャンペーン?
557デフォルトの名無しさん (ワッチョイ daad-YsWi)
2020/07/16(木) 23:23:34.12ID:HOuHYCld0
東京以外は goto を使ったCプログラムで溢れかえるんだろうなあ・・・
558デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/16(木) 23:59:23.84ID:miG5Ngn20
すべてのreturnは東京に帰る
559デフォルトの名無しさん (アウアウエー Sa02-rGUB)
2020/07/17(金) 00:08:23.19ID:UXHw+Bbza
exit((int) "TOKYO");
560デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/17(金) 06:35:08.70ID:FmIaoXoT0
令和のgoto有害説
561デフォルトの名無しさん (ワッチョイ 752d-sTnA)
2020/07/17(金) 08:41:43.61ID:UlzyaY8x0
gotoとラベル
562デフォルトの名無しさん (スップ Sdda-BbQx)
2020/07/17(金) 09:09:08.77ID:+XePIYq+d
うまいな
563デフォルトの名無しさん (アウアウウー Sa39-lbAa)
2020/07/17(金) 20:54:53.28ID:TuO7NpMNa
くっ。やられた。
私の負けを認めよう。
564デフォルトの名無しさん (ワッチョイ c628-UH/d)
2020/07/18(土) 12:46:51.82ID:PyiwbgQS0
奥村先生が書いてらっしゃる
「いまさらC言語」
https://scrapbox.io/imasaraC/
って、「初学者がC言語を学ぶ」という目的にはそぐいますか?
偉そうな言い方なんですけど、C言語の基礎を一通りなぞる感じには見えませんでした。
ですが、もしもC言語の基礎をこの記事で勉強できるなら、
奥村先生直筆の日本語文書ですし、ぜひ参考にさせていただきたいのです。
565デフォルトの名無しさん (アウウィフ FF39-L8bc)
2020/07/18(土) 12:56:27.17ID:uRU3MGLxF
散文っぽくて体系的じゃない感じは受けた
「いまさら」であって「初めての」ではないので文字通り受け取って
既に知ってる人が改めて見直す機会には良いんじゃね

scanf
https://scrapbox.io/imasaraC/scanf()

fgets
https://scrapbox.io/imasaraC/fgets()
566デフォルトの名無しさん (ワッチョイ c628-UH/d)
2020/07/18(土) 15:06:19.54ID:PyiwbgQS0
>>565
ありがとうございます。
入門書と銘打ってる文書にします。
567デフォルトの名無しさん (ワッチョイ ee8c-G2ah)
2020/07/21(火) 00:25:21.83ID:Wl7zo7XN0
すっごいポンコツPCでmacでCSV作って作ったの読み込んで計算して表示してって10回ぐらい繰り返したら同じデータ表示されるの?
568デフォルトの名無しさん (ブーイモ MMa1-cWPK)
2020/07/21(火) 00:30:45.40ID:Y7gEkUNqM
ポンコツだとたまに計算間違うから無理じゃないかなあ
569蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdfa-ch6b)
2020/07/21(火) 00:32:52.06ID:iLwMnecKd
>>567
本当にポンコツであれば、主メモリーかHDDが壊れている可能性がある。
570デフォルトの名無しさん (ワッチョイ ee8c-G2ah)
2020/07/21(火) 00:34:45.78ID:Wl7zo7XN0
>>567
なんかこんな環境でやったらCSVのデータが更新されなくて10回全部同じ計算になってるって事が起きたから
やった人はsleepで遅らせたら変化したって言ってたからそんなことが起きる事があるのかって不思議に思ったわ
571はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 693e-hHzd)
2020/07/21(火) 01:27:00.90ID:VthsC7AN0
メモリは思ったより信用できない (ちょいちょい化ける) という話を
何かのウェブブラウザ関連の文章で読んだことがあるような
気がするんだけど思い出せない。
572デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/21(火) 01:41:36.17ID:bmKYQrdR0
おじいちゃん
573デフォルトの名無しさん (ワッチョイ 7663-GoP2)
2020/07/21(火) 02:56:31.73ID:i26SyfyA0
簡単に化けるから誤り検出符号なるものが存在している
HDDはもちろんメモリだって物理的に劣化する
574デフォルトの名無しさん (ラクッペペ MM0e-M824)
2020/07/21(火) 03:18:48.82ID:e/mkPZH8M
https://ja.wikipedia.org/wiki/ECC%E3%83%A1%E3%83%A2%E3%83%AA
575デフォルトの名無しさん (ワントンキン MMea-rqus)
2020/07/21(火) 03:19:15.76ID:z3AOQZxtM
ディスクキャッシュでなかったかな。
毎度syncするようなkernelパラメータか何かを与えないと旧データを読み出すような事象が昔あったような。
576デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/21(火) 08:19:11.51ID:6CpMqD4P0
>>571
DRAMのメモリセルに宇宙線が当たったりね
でサーバー用のメモリにはECCがついてるし
HDDはRAIDで耐障害性設計もする
577デフォルトの名無しさん (オッペケ Sr75-J55X)
2020/07/21(火) 17:26:30.39ID:TSoseUQ7r
C言語を3ヶ月前から勉強し始めたものです。この間、C言語3級を受験しました。

C言語かなり難しいです。

苦労しながらC言語学んだ方いますか?
578デフォルトの名無しさん (ワッチョイ 69bb-zSg9)
2020/07/21(火) 17:28:45.77ID:aESJfhai0
はい
なんでしょう
579デフォルトの名無しさん (オッペケ Sr75-J55X)
2020/07/21(火) 17:30:55.73ID:TSoseUQ7r
安心しました
がんばります
580デフォルトの名無しさん (ワッチョイ 5a0e-YsWi)
2020/07/21(火) 17:30:56.37ID:6CpMqD4P0
苦労せずに学んだやつなんているのか?

元々アセンブラ屋でアドレスやポインタが当たり前だった俺でさえ
それなりに脂汗かきながら憶えたぞ
581デフォルトの名無しさん (ワッチョイ 95ca-ebQW)
2020/07/21(火) 18:13:57.71ID:zwiBtbEn0
独学で始めたからリンカの使い方とかよく分からず、C のソースを全部 include してたな。
582デフォルトの名無しさん (ワッチョイ 7646-NUPd)
2020/07/21(火) 19:46:32.95ID:tvr2GUf40
>>581
nanisore. 面白い。詳しく。
583デフォルトの名無しさん (ワッチョイ 6d63-zSg9)
2020/07/21(火) 20:00:00.53ID:bmKYQrdR0
多分分割コンパイルのやり方を知らなかった頃の話だろう
584デフォルトの名無しさん (ワッチョイ 95ca-ebQW)
2020/07/21(火) 20:10:11.93ID:zwiBtbEn0
>>583
そそ、そういうこと。
んで複数のソースを include するだけのファイルを作って、それのことを makeファイルと言うんだと思ってた。
585デフォルトの名無しさん (アウアウエー Sa02-rGUB)
2020/07/21(火) 22:42:16.68ID:nbzaQebba
依存ファイル集める方がよほど知識が要りそう
586デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:51:53.55ID:xRlBM5RB0
このコード最適化の余地ある?-O3でやっても1900msとかかかるんだけど

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

int f(int size, int *data1, int *data2) {
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data1[i] & data2[i];
}
}
return r;
}
587デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:52:29.23ID:xRlBM5RB0
int main(int argc, char *argv[]) {
int size = 1000 * 1000 * 100;
int *data1 = (int*) malloc(size * sizeof(int));
int *data2 = (int*) malloc(size * sizeof(int));

//setup test data
srand((int) time(NULL));
for (int i = 0; i < size; i++) {
data1[i] = rand();
data2[i] = rand();
}

int sec, millisec;
struct timeb timebuffer;

//start
ftime(&timebuffer);
sec = timebuffer.time;
millisec = timebuffer.millitm;
588デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 15:52:35.64ID:xRlBM5RB0
// benchmark
int r = f(size, data1, data2);

// end
ftime(&timebuffer);
sec = timebuffer.time - sec;
millisec = timebuffer.millitm - millisec;
millisec += sec * 1000;

printf("%d ms \n %d", millisec, r);

free(data1);
free(data2);
}
589デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:01:48.88ID:lGyqioywH
f()で0返せばいいんじゃね?
590デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:06:36.57ID:xRlBM5RB0
たしかにrが0になるが
たぶんsrand, randで値の分布が一様じゃないせいか?
Javaとの性能比較してたんだけど乱数生成法が合わせれないな
591デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:07:57.00ID:xRlBM5RB0
あ違うなsizeがでかすぎると0になっちゃうのか
592デフォルトの名無しさん (ワッチョイ 69e6-5TCi)
2020/07/22(水) 16:11:34.79ID:1buRSft90
Java(VM)とCという言語の比較をしたいのかこのソースを最適化したいのかrandの仕様を統一したいのか意味不明だわ
593デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:21:46.25ID:xRlBM5RB0
JavaとCの性能比較で「Javaは高速だCに負けてない」とか
「JITやGCが動作する時に遅くなるだけだ」とか良く言われてる。
でもこういう単純な配列処理でCの方が3倍くらい速いよな、と思って。
この処理は計測中にヒープ割当が無いからGC関係ない(Javaでオブジェクトを作成するとGCのためのオーバーヘッドがあるらしい)。
JavaでJIT効かせてから計測してもCが4倍弱速かった。
最初1900msもかかるといってたのは勘違い。Cの方が4倍弱速いから予想通りの性能だった。

Javaの性能に関する言説を見渡しても、なぜこういう処理でJavaが遅いのか説明が無い。

大量のデータを処理しつつ特定の値に収束しない良いベンチマークコードがあればいいんだが。
足す引きを交互に繰り返すか。
594デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/22(水) 16:24:26.21ID:t6q0HDDX0
>>586
data1[i] & data2[i] の計算を100回もやることはないから
int f(int size, int *data1, int *data2) {
int *data3 = (int*) malloc(size * sizeof(int));
for (int i = 0; i < size; i++) {
data3[i] = data1[i] & data2[i];
}
int r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r ^= data3[i];
}
}
free(data3);
return r;
}
ってやると多少速くなるかも
あとは分割してスレッドで並行して実行するとかかな
595デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:26:57.20ID:xRlBM5RB0
これで収束しないし毎回ランダムな結果になる。

long f(int size, int *data1, int *data2) {
long r = 0;
for (int j = 0; j < 100; j++) {
for (int i = 0; i < size; i++) {
r += data1[i] - data2[i];//ここ変えた
}
}
return r;
}
596デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:34:17.16ID:lGyqioywH
なんだ、^ の意味わかってなかったのか。
ていうか、コードの最適化を求めるなら、
そのコードの目的のほうが先に存在するはずじゃないのか?
コロコロ変えてさあ最適化しろとかおかしいだろ。
597デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:39:25.22ID:xRlBM5RB0
0になってたのは^じゃなくて&が原因だろ
598デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:42:01.87ID:lGyqioywH
^ だよ
最後のやつで + を ^ にしたらどうなる?
599デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 16:44:20.78ID:xRlBM5RB0
あr=0でr^=使ってたからか
演算子の意味じゃなくてr=0で始めてる事との整合性に気付いてなかった
r = rand();
r ^= data1[i] ^ data2[i]
これなら収束しないはず
600デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 16:46:16.22ID:lGyqioywH
それ、最初の rand の値が返るだけだから。
601デフォルトの名無しさん (エムゾネ FF33-keh3)
2020/07/22(水) 16:56:43.54ID:J+LKPgcIF
もしかして残念なベンチ
602デフォルトの名無しさん (JP 0H55-ZQKC)
2020/07/22(水) 17:05:53.92ID:lGyqioywH
目的の明確でないベンチマーク作っても無駄だよね。
何を調べたいの?
603デフォルトの名無しさん (ワッチョイ 69e6-5TCi)
2020/07/22(水) 17:19:08.68ID:1buRSft90
> この処理は計測中にヒープ割当が無い
って書いてあるけどガッツリ malloc してるし本当に何がしたいのか良く分からない
604デフォルトの名無しさん (スププ Sd33-Y9Vl)
2020/07/22(水) 17:34:24.16ID:Y73iWKLTd
全ての値を偶数回^すれば答えは0になって当然
605デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 17:58:11.98ID:xRlBM5RB0
>>600
なんで代入されないんだ?

>>602
>>593
>こういう単純な配列処理でCの方が3倍くらい速い

>>603
「計測中に」はstartとendの間にという意味。
606デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/22(水) 17:59:58.58ID:HrEyCXiAd
>>586
大いに改善の余地あり
0になることを仮定せずに真面目に計算するとして

データがメモリがキャッシュに入るとすると
計算の依存関係ありまくりだから
ほぼレイテンシ待ちになる

ループ4周を展開して
rを4個に分けるだけで速くなりそう

SIMD命令が使えるなら
非常に効果がある形なので
使えるなら使う
この場合も演算の依存関係は減らすこと

データがキャッシュに収まらないなら
メモリ速度で決まるからあまり関係ない
607デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:03:43.69ID:xRlBM5RB0
代入されないんじゃなくて偶数回^すると元に戻るのか
608デフォルトの名無しさん (ブーイモ MM4d-ZQKC)
2020/07/22(水) 18:04:59.81ID:YNla03BQM
>>605
> なんで代入されないんだ?

代入はされているが、100が偶数だから >>604 の言うように0に戻ってるだけ。
609デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:09:25.81ID:xRlBM5RB0
二重ループにして外側が偶数回だからか。
「同じ乱数列を偶数回XOR走らせたら元に戻る」と。
>>600>>604が言ってるのはそういうことか

勉強になった
610デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:12:28.77ID:xRlBM5RB0
あーじゃあr=0で始めてたことは関係無くて、
単に二重ループの外側が偶数回だと無意味だと。
r=0で始めてもXORならちゃんとビット列変わってたけどXORの性質から元に戻ってたと。
コンパイラがそれ知ってたら最適化して処理消しちゃうから良くないな。
XORのその性質を知らなかった
611デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:26:49.94ID:xRlBM5RB0
より正しく述べておこう
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある

ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
612デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 18:26:50.13ID:xRlBM5RB0
より正しく述べておこう
・1回でも101回でも同じ結果なのでXOR版では二重ループの外側が無意味
・data1, data2がどんな数列でもXORの性質は同様にある

ID:lGyqioywHとID:YNla03BQMはこれを言ってたんだな
613デフォルトの名無しさん (ブーイモ MM4d-ZQKC)
2020/07/22(水) 19:03:36.52ID:YNla03BQM
かようにベンチマークっていうのは難しいんだ。
CPUの比較をするだけでもいろんな提案があって
SPECとかはなんとか信頼されているが、
言語間の性能比較とか素人が適当にでっち上げても、
そのプログラムが悪いだけじゃねってなるのがオチ。
614デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/22(水) 21:28:34.34ID:EzFbgF7R0
最終的に 0 になるだろけど、この計算は愚直に行われるんでしょ。
答えが 0 にしかならないことと C と Java の速度差がそうなることとはまた別の話だよね。

って、コードの最適化の話だったんだっけ?
615デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/22(水) 22:22:42.43ID:xRlBM5RB0
Cがこの処理でJavaより3〜4倍速い事は確認できた。
0に収束する事とそれは無関係。

以下、一応書くけど完全にスレ違い。

このような単純な配列処理でCとJavaの速度差がなぜ生じるか?はまだ分かってない。
・HotSpotは配列の境界チェックを除去できる
・一般論としてJavaが遅くなる原因としてJITやGCが挙げられるがこの単純なプログラムではそれらの影響はない

予想
・1命令で処理できるサイズが違っている?約4倍の速度差はベクトル演算の差で説明できそう。
だとしたらなぜJavaのJITはそれをやらないか?
・CPUキャッシュの問題?Javaの場合CPUキャッシュが別の何かで埋まってしまっている可能性
616デフォルトの名無しさん (ワッチョイ 69e6-A04g)
2020/07/22(水) 22:30:57.82ID:1buRSft90
自分のブログでやって
617デフォルトの名無しさん (ワッチョイ d9c3-Y9Vl)
2020/07/22(水) 23:08:24.67ID:G9I2XdZp0
そもそもjavaがc/c++並に速いとか、かなり嘘や誤魔化し入っているから
速度差3-4倍で済むなら十分健闘している

javaのコードを移植して、無駄にmalloc freeしまくったりする糞コードならもっと迫れるだろうけど
618デフォルトの名無しさん (ワッチョイ 3997-nH3A)
2020/07/23(木) 02:25:27.91ID:tfGyNQFW0
>>615
そもそもJITが吐くバイナリを逆アセンブルして比較しなきゃしょうがないんでね?
そのようなことが可能かは知らないけど、処理中にデバッガで無理矢理止めればわかりそうな気はする
619デフォルトの名無しさん (ガラプー KK4d-XNsZ)
2020/07/23(木) 04:09:18.13ID:NaEhWCW1K
最初の>>586の問いがベンチマークを意図してるとは思われてなかったから{return 0;}で良いんじゃね?ってなったんでは
620デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 11:21:03.05ID:TTqTgaIL0
javaの配列は特別な宣言無しに別スレッドでこっそり書き換えてもちゃんと反映されるわけだから、単純処理であっても最適化にも限界があるだろうな。
Cの場合は、他で書き換えられるかもと指定しておかなければ他所のことなんておかまいなしに処理できるから、その点だけでも有利だよね。
>>586 のコードのなら、i のループに入る前に data[j] を変数に取り置いて i のループ内で使用するようにすれば、java の方では高速化されるんじゃね。
C ならそれをコンパイラがやってくれてそう。
621デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 11:24:21.68ID:TTqTgaIL0
逆にCの側で配列を volatile にしておけば Java との速度差は小さくなるかもね。
622デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 11:26:24.50ID:V2V2cZYad
data[j]なんかないけど
623デフォルトの名無しさん (ブーイモ MM9d-C2Yk)
2020/07/23(木) 11:46:46.14ID:vtZyy6ICM
じゃあjava.util.concurrent.atomic以下にある配列クラスは全部廃止だな
624デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 12:46:54.76ID:tYvDqilk0
ベクトル演算の未適用が原因だとほぼ特定できた。
625デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 13:17:22.41ID:V2V2cZYad
>>587
巨大サイズメモリで簡単な演算だから
ほとんどがメモリアクセス時間だろ
626デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 13:19:58.21ID:V2V2cZYad
簡単な処理のために巨大メモリをスキャンするのは超無駄
627デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 13:51:39.59ID:tYvDqilk0
C版
size
1000*1000 * 1 20ms
1000*1000 * 10 191ms
1000*1000 * 100 1893ms
線形な変化だからCPUキャッシュに載り切るかで性能が分かれるという事が生じてない。
たぶんCPUキャッシュは「繰り返し使うデータ」じゃないと有意義じゃない。
この処理だとCPUキャッシュ上のデータを排除可能になるまでの時間がボトルネックで、
つまり「CPU上のデータを処理しきって次の要素を受け付けれるようになるまでの時間」が支配的なはずで
そこがベクトル演算で高速化してる。

Java版も線形に変化した。

で、Javaのコードでr += data1[i] + data2[i]のところでdata1のみにしたら2倍速になったからベクトル演算未適用が原因でほぼ間違いない。
その行で+か-か^か&かは結論に影響しない。
628デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 13:55:19.10ID:TTqTgaIL0
>>622
ほんとだw
data1 か data2 かは置いといてもどっちも i を添字とするループか。
マトリクス状に組み合わせてるんだと錯覚してたすまん
629デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 14:11:44.83ID:TTqTgaIL0
>>623
値が volatile なことと操作が atomic なことは別の話だよ。
自分が書き換えない同じ領域を複数参照するとき、それを他の誰も書き換えないならその参照は一度目の値と同じになる前提で最適化できるけど、他の誰かがいつの間にか書き換えることがあるならそういう最適化はできなくなる。
そういう領域であることを明示するのが volatile。
atomic は同じ領域を誰かが書き換える前提なので基本的にその領域は volatile だけど、それに加えて値を参照して手を加えて書き戻すなどの一連の手続きの途中で他の誰かにいじられないことを保証すること。
それを CPUレベルの命令で行うかソフトウェア的なロックで行うかで色分けされてるだけ。
630デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:28:36.26ID:V2V2cZYad
>>627
CPUは何?
631デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:33:33.27ID:V2V2cZYad
メモリアクセスの影響がないなら

iとjのループを入れ換える
ループアンロール
rを偶数奇数で分ける
SIMD

などが有効
632デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:36:26.08ID:V2V2cZYad
>>627
同じメモリに100回アクセスしてるんだから
メモリサイズが小さければキャッシュが効くはず
633デフォルトの名無しさん (ワッチョイ 1394-keh3)
2020/07/23(木) 14:42:55.39ID:tYvDqilk0
>>632
確かにそうだ。
でも1000 * 100も試してみたが2msで線形だった。
634デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/23(木) 14:44:16.58ID:V2V2cZYad
CPUは何?
635デフォルトの名無しさん (ワッチョイ f97f-9CAQ)
2020/07/23(木) 16:21:21.26ID:WGvvEAFm0
>>629
別スレッドからの値の書き換えについて話をしていたよね?
だったらvolatileは何も保証してくれないよ
636デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/23(木) 16:39:16.32ID:TTqTgaIL0
>>635
保証ってなんの話?
637デフォルトの名無しさん (ワッチョイ d901-1JrC)
2020/07/23(木) 20:41:12.28ID:j3eQi4Nn0
>>629
分かってると思うけど誤解なきよう勝手に補足するけどvolatileの最適化抑制はreadだけではなくてwriteに対してもな。
ドライバ書いてる人には常識レベルだけど。
638デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/24(金) 03:10:38.82ID:6ZonvnML0
volatile ってスレッドに限らず値が知らない内に変化する可能性のある何かの入力でも使うよね。
例えばマイクから拾った音を A/D 変換した値がメモリマップドI/Oで特定のアドレスのメモリ読む方法で読める場合。
CPUが予想不能な形で値がコロコロ変わるので volatile にせざるを得ない。(volatile って揮発性とか不安定って意味だし、言葉の意味そのままだ)。
これは読む側だけど書いて何かを出力する場合も、書いた値を読めないような作りになっている場合もある。
1を書いたのに直後に読むと0だったりなんていう事はあり得る。要するに一々覚えていない。または覚えていても読み出しに対応していない。
そんなハードウェアが接続されていたらそうなる。
639デフォルトの名無しさん (ワッチョイ 812c-WQpp)
2020/07/24(金) 04:44:18.69ID:So4dssPK0
そりゃ、外部装置と連動しているから、値がいつ変わるか分からない

外部装置が読み書きしたら、合図として、0.1ms 後に、値を反転させたりとか、
色んな事をするから、予測できない
640デフォルトの名無しさん (ラクッペペ MMeb-Sn4z)
2020/07/24(金) 09:33:19.23ID:ASBY7bf4M
volatileは変数(I/Oアドレス)に対するアクセス行為は保障するけど値そのものに対しては何の意味もない
そもそも外部要因で変化する値に対して干渉するのは不可能
641デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/24(金) 10:20:02.92ID:4h264/iA0
どこから干渉するとか出てきたんだ…
知ってる知識を開陳したくてしょうがないんだろうなw
642デフォルトの名無しさん (ワッチョイ d9da-u8K7)
2020/07/24(金) 15:22:34.69ID:jNVRIcub0
volatileな変数を読むのは怖いよね
ワード単位ならいいけど、構造体読むときはチェックサム欲しくなるよね
643デフォルトの名無しさん (ワッチョイ d9ca-13t9)
2020/07/24(金) 18:25:04.01ID:ogZVfXfN0
別に怖くはないだろ。
他所と排他するなりしかるべきタイミングでアクセスすればいいだけなんだから。
排他や同期が必要な領域にそれをせずにアクセスするならただのアホってだけで、volatile がどうとかいう話じゃない。
644デフォルトの名無しさん (ワッチョイ 71b3-Ky2H)
2020/07/24(金) 20:10:16.16ID:Cmq7VG8v0
LL/SC命令が結構使える
645デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/25(土) 04:21:09.10ID:qNFJliza0
>>642
それはatomicとかクリティカルセクションの話であって
volatileで何とかしようという発想がそもそも間違いだ
646デフォルトの名無しさん (ワッチョイ d901-fOmF)
2020/07/26(日) 03:07:46.88ID:4oXiyEBn0
「書きこんだものの読み込んでないからコードから消しちまえ」
「読み込んでるけど、代入以降値がかわる気配がないから、読み込みを止めて固定値にしちまえ」
これを抑制するだけ
書き込や読み込みを記述通り生き残らせる
647デフォルトの名無しさん (ワッチョイ 71b3-Ky2H)
2020/07/26(日) 08:34:28.91ID:M65fvK3w0
W=>R : R省略
R1=>R2 : R2省略
W1=>W2 : W1省略
648デフォルトの名無しさん (ワッチョイ 1301-KHfa)
2020/07/26(日) 10:41:35.23ID:3q3cv3BJ0
volatile覚えて嬉しいのはわかるけど…
649デフォルトの名無しさん (スップ Sd73-Ky2H)
2020/07/26(日) 11:55:59.05ID:7t5aGHPkd
volatileの意味を知らない人 vs volatileを覚えたての人
650デフォルトの名無しさん (ブーイモ MMcb-C2Yk)
2020/07/26(日) 12:24:46.27ID:oYG2ZyVyM
vs 30年前の常識で語る人
651デフォルトの名無しさん (ワッチョイ 8146-ZDF1)
2020/07/26(日) 13:35:18.59ID:6eSsd+mZ0
ANSIは邪道。
652デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/26(日) 18:14:24.05ID:hRZi6+cn0
あんししー
653デフォルトの名無しさん (ワッチョイ 41bb-RnSF)
2020/07/26(日) 20:08:24.24ID:VBmKLhih0
アンジー、なんてこと言うの
シー
654デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 02:57:00.46ID:BRKetx390
30年くらい前までドヤる人が好んで口にしてたけどね
そういう人はC89ができたらピタリとやめた

今まだ言ってる珍獣って何なん?
655はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 08:26:00.92ID:IvOd7acF0
姫宮アンシー
656デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 16:25:16.57ID:BRKetx390
C89以前のK&R Cは個人的には好きなので
gcc -traditional復活して欲しい
657デフォルトの名無しさん (ワッチョイ 0963-RnSF)
2020/07/27(月) 16:41:53.18ID:euzbjA/F0
関数定義で引数が()の外に書かれる記述みると、
今は違和感が湧いてしまう
658はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 16:45:47.58ID:IvOd7acF0
書き方が違うだけなら古いスタイルでもいいんだけど、型チェックが緩いんだよな。
659デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/27(月) 17:14:06.93ID:BRKetx390
アセンブラ屋出身の俺っちにはどうでもいいことだ
660はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 413e-fOmF)
2020/07/27(月) 17:35:58.30ID:IvOd7acF0
引数の数を間違えているのに黙って通してしまう例。

https://wandbox.org/permlink/FEu474UVSsilTq0L

最適化オプションを付けたらフロー解析も強まるのか警告してくれたけど。
661デフォルトの名無しさん (ワッチョイ 13ad-5TCi)
2020/07/27(月) 18:50:57.45ID:8GZ2GqSj0
その他の例
https://wandbox.org/permlink/gz8u1YkarV3RuM1M
662デフォルトの名無しさん (ワッチョイ 3997-nH3A)
2020/07/27(月) 23:59:05.30ID:UIY75t8S0
スタックが壊れないならまあいいんじゃね?
663デフォルトの名無しさん (ワッチョイ 130e-5TCi)
2020/07/28(火) 03:43:48.32ID:JnUAmZD/0
あのなあ、おまえら。。。。
K&R Cに対する批判なんて今さらドヤるか?
規格Cを憶えるときにプロトタイプは何のためか
説明受けてないやつがここにいるとでも思うのか?
664デフォルトの名無しさん (アウアウウー Sa5d-d0Nl)
2020/07/28(火) 13:28:44.28ID:DVrEteyfa
(キリッ
665デフォルトの名無しさん (ワッチョイ 8146-ZDF1)
2020/07/28(火) 19:40:24.44ID:1JEs8/dl0
"#C-PLA" という店名をどう思いますか。
666◆QZaw55cn4c (ワッチョイ 7be9-f6Di)
2020/07/28(火) 19:48:32.54ID:cWad1kwo0
>>663
やっぱり C99 or later を叩くのがかっこいいですよね
667デフォルトの名無しさん (ワッチョイ 5910-Xo7T)
2020/07/28(火) 20:02:16.84ID:geCJz7H80
>>665
オブジェクトをカプセル化・・・?
668デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:10:37.12ID:tqWMyndD0
浮動小数の演算で生じる誤差は常に絶対値が小さくなるように行われる、
という前提は正しい?
669デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:11:14.42ID:tqWMyndD0
C限定の話じゃないからスレ違いか
670デフォルトの名無しさん (ワイーワ2 FF62-lIev)
2020/07/29(水) 17:12:49.06ID:hY/5h1XOF
日本語として可笑しいのでgoto語学板へ
671デフォルトの名無しさん (アウアウウー Sa09-oq/g)
2020/07/29(水) 17:14:56.87ID://053udPa
>>668
正しい気がする
672デフォルトの名無しさん (アウアウウー Sa09-oq/g)
2020/07/29(水) 17:18:22.13ID://053udPa
>>668
ごめん嘘ついた。
673デフォルトの名無しさん (ワッチョイ fa0e-xE3T)
2020/07/29(水) 17:21:06.57ID:8sSsdFab0
>>668
ライブラリやFPUの実装の話だね

例えばだけどIEEE754の定義では
仮数部は1.xxxxxxと、整数部が常に1なので
整数部を省き、その分の1bitを小数部に回す「ケチ表現」で
誤差がなるべく小さくなるように工夫している
674デフォルトの名無しさん (ワッチョイ da52-kd5w)
2020/07/29(水) 17:25:55.07ID:Bu6uxHFv0
>>668
浮動小数点制御ワードの設定によっては丸め方向が変わるから、必ずしもそうだとは言えないかも。環境によるのかもしれないけど、詳しくは知らない。
_controlfp_sとかでググってみて。
675デフォルトの名無しさん (ワッチョイ fa94-UdrD)
2020/07/29(水) 17:28:44.72ID:tqWMyndD0
doubleを分解(0.1や0.3とかでかけて複数のdouble値にする)して足し合わせて比較、
という処理を無限回繰り返して元の絶対値を超えていたら停止、
みたいなテストコードを書いてみたけど、低確率で元の絶対値を超える。
この誤差が分解と足すときどちらで生じているか分からないが
なんにせよ浮動小数点数演算の誤差で絶対値が増加する場合があるようだ。
676デフォルトの名無しさん (ワッチョイ fa0e-xE3T)
2020/07/29(水) 17:45:17.74ID:8sSsdFab0
あ、誤差の絶対値ではなく、結果の絶対値ということ?
俺の勘違いだったら悪いんだけど、それじゃ意味なくね?
結果が正数ならともかく負数の場合デメリットだけやん
677デフォルトの名無しさん (スププ Sd9a-xoHN)
2020/07/29(水) 18:11:52.28ID:+Q7sP3F+d
丸めモードによって変わるだろうに
絶対値が小さくなるのはround toward zeroにしたときだな
678デフォルトの名無しさん (ワッチョイ 79bb-Xvfy)
2020/07/30(木) 05:23:55.72ID:82YOHtIh0
Cのソースコードを解析するツールで有名なものって何かありますでしょうか?
679デフォルトの名無しさん (ワッチョイ ce8c-LW7E)
2020/07/30(木) 06:42:57.43ID:ixil7w/z0
上司がこっそり使っていた cflow
680デフォルトの名無しさん (ワッチョイ d1b3-Fkfq)
2020/07/30(木) 07:04:40.85ID:SsIpxIlu0
>>668
加減乗算のほとんどの実装ではそう
681デフォルトの名無しさん (ワッチョイ 0101-iVY1)
2020/08/10(月) 04:07:37.60ID:SKFyjjt90
デファクトスタンダードなCのコーディング作法を手っ取り早く
身につけるために何をすべきですか?
682デフォルトの名無しさん (ワッチョイ 0101-Ea0s)
2020/08/10(月) 04:47:16.15ID:o5h87VM/0
所属がわからないと何とも言えませんね。
社名と部署お願いします。
683デフォルトの名無しさん (ワッチョイ d1da-e++8)
2020/08/10(月) 04:53:08.55ID:P+mDn/zj0
車載の組み込み系以外は
それぞれの会社にコーディング規約あるんじゃない?
知らんけど
684デフォルトの名無しさん (ワッチョイ 1b8c-oftG)
2020/08/10(月) 06:50:01.64ID:ruBmk/3z0
お手本のプログラムを上司に見せてもらい完コピする。
685デフォルトの名無しさん (ワッチョイ 992c-B5sl)
2020/08/10(月) 06:53:36.45ID:k2ud7k4K0
>>681
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006

この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、作った本

未だに、コーディングルールのバイブルだろ

元々は、Andrew Koenig の本

C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴
686◆QZaw55cn4c (NZ 0Ha3-+xie)
2020/08/10(月) 07:14:44.55ID:JYoLJZbsH
>>685
>数十人のベテ
司法試験板をみると「ベテ」というのは30代以降の複数回受験者のことらしいですよ
文脈によっては veteran は階級を問わず退役軍人を意味することもありますし‥‥「わしが現役の頃には」を壊れたレコード盤のように繰り返すイメージとか
ベテランという言葉に必ずしもプラスイメージが伴っているとは限らないことはしっておいたほうがいいんじゃないですか?
687デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 07:23:02.78ID:tfnxCl0S0
能書きはいいから内容を見ろや

あれを見てくだらねえと思うことが何もないやつは
自分がなさすぎだ
688デフォルトの名無しさん (ワッチョイ 0101-iVY1)
2020/08/10(月) 09:47:53.28ID:SKFyjjt90
>>682-684
なるほど,やっぱり利用場面とか会社の文化などで
全然違ってくるんでしょうかね

>>685
ありがとうございます.見てみます.
689デフォルトの名無しさん (エムゾネ FF33-SiUo)
2020/08/10(月) 11:57:46.08ID:wInlBSoOF
何も知らないなら手あたり次第写経してみ
それで何でこんな描きかたになってんの?
ってここで質問繰り返せば良い
みんな暇だから答えてくれるはず
690デフォルトの名無しさん (ワッチョイ 895f-Ea0s)
2020/08/10(月) 14:56:52.81ID:xpVmb7Uo0
printfってどれだけメモリ使うんですか?
691デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:00:54.55ID:tfnxCl0S0
実装による
以上
692デフォルトの名無しさん (ワッチョイ 0b7c-BIoY)
2020/08/10(月) 15:02:14.80ID:7NjJFrXk0
printf()の戻り値は本当に捨てて良いんですか?
とか
693デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:36:42.46ID:tfnxCl0S0
返却値の意味くらい知ってる?
694デフォルトの名無しさん (ワッチョイ d1da-FoHg)
2020/08/10(月) 15:44:16.59ID:cUENozhv0
だいたいの戻り値は無視してよいよ
695デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 15:50:24.83ID:tfnxCl0S0
アホ
696デフォルトの名無しさん (ワッチョイ 3163-IIsV)
2020/08/10(月) 16:38:24.39ID:BXZAjCBt0
>>692
捨てては駄目だな。答えが表示できなくなる。

#include <stdio.h>
int main()
{
 printf("%d\n",printf("1+2+3="));
 return 0;
}
697デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/10(月) 18:19:20.30ID:tfnxCl0S0
返却値を捨てて良いか否かを他人に聞いて
そこに固執する教条主義者か
いかにもMISRA大好きそうだな
698デフォルトの名無しさん (ワッチョイ d101-oftG)
2020/08/10(月) 21:28:34.35ID:CQsKBDF30
MISRA〜ヤ MISRA〜
699◆QZaw55cn4c (NZ 0Ha3-+xie)
2020/08/10(月) 21:32:33.10ID:JYoLJZbsH
MISRA も、MISRA 対応性的解析ツールを公開してくれていてもよさそうなものですが‥‥ただで
700デフォルトの名無しさん (ワッチョイ 6146-f0BE)
2020/08/10(月) 22:13:11.57ID:DZgybkpe0
性的解析...
701はちみつ餃子 ◆8X2XSCHEME (ワッチョイ d13e-FoHg)
2020/08/11(火) 01:09:34.46ID:EJAYjJkN0
MISRA だって MISRA を採用する場合に何がなんでも全ての項目に準拠しなければならないというわけではない。
(逸脱する場合には文書化しておくことを推奨してはいるが。)

ただ、気を付けなければならない箇所がまとめられているというのも間違いないので、
目を通すくらいのことはしたらいいんじゃないの。
俺は読んだことないけど。
702デフォルトの名無しさん (ワッチョイ ebd2-e++8)
2020/08/11(火) 07:47:01.13ID:SWJYIPbx0
規格、仕様の奴隷
703デフォルトの名無しさん (ワッチョイ 59bb-IIsV)
2020/08/11(火) 07:50:09.41ID:RSsrE9PW0
俺は規格や仕様に縛られないで自由にプログラミングするのさ
翼が生えた蛙みたいにケロケロいいながら大空を羽ばたくのさ
704デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/11(火) 08:12:17.68ID:cZN35xi70
いや規格は守らなきゃ
工業人の法律みたいなもんだから

MISRAの話がどう化けると仕様になるのかは意味不明
705デフォルトの名無しさん (ワッチョイ 5905-e++8)
2020/08/11(火) 09:12:05.23ID:02tHA6AW0
>>704
規格が法律に例えられるように、MISRAは憲法になぞらえることができる
706デフォルトの名無しさん (ワッチョイ d352-IP9Q)
2020/08/11(火) 09:29:25.90ID:nKBbqh2w0
>>705
なんでMISRAの方が規格より上位なんだよw
せいぜい一地方都市の条例程度のものだろう
707デフォルトの名無しさん (ワッチョイ 13a5-w77N)
2020/08/11(火) 11:41:57.49ID:l01whKN50
でもやっぱりどれくらいMISRAに準拠してるかチェックするツールが全く出てないのは不自然
もしかしてMISRAって目視チェックを前提にした規格なのか?
それとも企業で門外不出のツールになってんのか?
708デフォルトの名無しさん (ワッチョイ 130e-e++8)
2020/08/11(火) 11:44:29.40ID:cZN35xi70
【手を挙げて】横断歩道を渡りましょう
 ↑
この程度だよ

憲法だの条例だのと違い司法機関は相手にしない
709デフォルトの名無しさん (ドコグロ MMfd-LWG7)
2020/08/11(火) 11:46:02.07ID:XFONBlSQM
小池百合子が掲げるフリップみたいなもんだろ
今年の夏は特別な夏です、破廉恥なコードは自粛しましょう
710デフォルトの名無しさん (ワッチョイ 3163-IIsV)
2020/08/11(火) 12:17:39.96ID:gJF+/AhQ0
「警報!侵蝕されてます!パターン青です!コードを切り離せません!」

夏はこれ
711デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 12:28:40.57ID:RcrtMjNU0
>>707
全くて、市販の静的解析ツールならいくつかあるじゃん。
712デフォルトの名無しさん (ワッチョイ 5110-FyBY)
2020/08/11(火) 13:59:44.70ID:QMJ1Ew+q0
おまえらミスラの話と見せかけて髻(みずら)の話につなげようとしてんだろ
どうせここで髪の話して俺の悪口言う魂胆なんだろ
おまえら最悪だな
713デフォルトの名無しさん (ワッチョイ d352-IP9Q)
2020/08/11(火) 14:47:19.21ID:nKBbqh2w0
>>712
髻なんて糞、そんな下らないものを気にする奴は馬鹿、という流れでお前さんへのエールのはずだったんだ
714デフォルトの名無しさん (アウアウウー Sa55-1t4k)
2020/08/11(火) 18:54:59.41ID:j5xuOst8a
きみはこう言いたいのでしょう
ヅラはどこだ!
715◆QZaw55cn4c (NZ 0Ha3-+xie)
2020/08/11(火) 19:18:03.85ID:IiIy4i0JH
>>711
MISRA の対応するコメントを付けてくれる性的解析ツールは、無料で提供されるべきでしょう、業界標準を目指すのなら
716デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 20:25:37.46ID:RcrtMjNU0
>>715
規格書の類すらみんな有償なのに夢見すぎ。
そもそもMISRAって金も出せないアマチュアに使ってもらうようなものでもないしね。
717◆QZaw55cn4c (NZ 0Ha3-+xie)
2020/08/11(火) 20:31:23.80ID:IiIy4i0JH
>>716
でも MISRA の対象者レベル設定ってアマチュアレベルでしょう?
718デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 21:02:15.95ID:RcrtMjNU0
金取るかどうかの話をしているのにレベルの話を持ち出したのは意図的に話をそらしたわけ?
それとも日本語をちゃんと理解できない?
719◆QZaw55cn4c (NZ 0Ha3-+xie)
2020/08/11(火) 21:19:03.39ID:IiIy4i0JH
>>718
無論、前者ですね、というかモノの値段はその価値と深い相関があるのが普通でありマトモだとも思いますから、
支払う価値の話に対して対象レベルの話を持ち出すことは、あながち間違っているとはいえないでしょう?
720デフォルトの名無しさん (ワッチョイ 61b0-e++8)
2020/08/11(火) 21:46:45.35ID:RcrtMjNU0
言ってることがむちゃくちゃすぎw
やっぱり日本語もダメだろ
721デフォルトの名無しさん (ワッチョイ 992c-W4sk)
2020/08/11(火) 23:30:38.44ID:X5c8vKvD0
VSCode の拡張機能で、misra で検索すると、これが見つかる

Parasoft C/C++test Standard
https://marketplace.visualstudio.com/items?itemName=parasoft.vscode-cpptest
https://docs.parasoft.com/display/CPPTEST20201

C/C++ Static Analysis, Safety and Security Coding Standards,
MISRA C 2012, AUTOSAR C++ 14, CERT C/C++, and others.
722デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/12(水) 05:43:26.21ID:/aSZJl0C0
>>717
アマチュアとアマチュア以外の定義を述べよ。
723デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/12(水) 08:33:57.98ID:YginzyYa0
プロってどの位のレベルなのかに興味津々なんだろうな
サンプルがなくてw
724デフォルトの名無しさん (ワッチョイ 027c-p5K4)
2020/08/12(水) 09:52:08.77ID:3JHviGe70
複雑になっても自分で何を作っているのか理解しているかしていないかぐらいの差じゃないの?
725◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/12(水) 13:20:01.63ID:UG+oufucH
>>722
トータル 1 万ステップ以上のプロジェクトを扱ったことがあればプロ、そうでなければアマ、というのはどうでしょうか?
無論、私は後者です
726デフォルトの名無しさん (ワッチョイ e501-/T98)
2020/08/12(水) 13:35:54.95ID:+rovT3b20
ステップ数なんて飾りだよ
727デフォルトの名無しさん (ラクッペペ MM26-snu4)
2020/08/12(水) 14:22:01.62ID:XADAagqaM
業として行っている個人やそのような組織に属しているのがプロ
728デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/12(水) 15:57:15.32ID:yGflmyFx0
捕まる泥棒はアマ、捕まらないのはプロ。
729デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/12(水) 16:07:40.09ID:YginzyYa0
ステップ数って・・・まさかマジで言ってるのか?
730デフォルトの名無しさん (ワッチョイ 81ca-YRtD)
2020/08/12(水) 16:15:20.08ID:aKiWlwPm0
それを生業にしてるならヘボかろうがプロではあるな。
んで世の中ヘボが相当数いる。
百人単位のプロジェクトになると7割はヘボ。
入社したてのほとんど何もできない新人君とかも混ぜ混んでくるし、本当にひどい。
でもみんなプロ。
731デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/12(水) 16:20:10.06ID:mptqcK2nF
人件費稼ぐために頭数合わせてるだけ
732デフォルトの名無しさん (ワッチョイ c219-k0xq)
2020/08/12(水) 17:46:51.14ID:wD9I21LT0
プロアマの基準にステップ数なんざ関係ないが1万程度1人で組める規模じゃん
成果物で金稼いでりゃプロで良いと思うし、プロでもひどいの居ればアマでもすごいのは居る
733◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/12(水) 17:56:25.37ID:UG+oufucH
>>732
>成果物で金稼いでりゃプロ
なるほど‥‥感心しました
734はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 813e-++7W)
2020/08/12(水) 18:20:24.44ID:WoaeeAs50
長時間労働に耐えられる体力があるのかもしれんし、
有力者に取り入る能力が高いのかもしれんし、
幸運値が高くてなんとなくやっていけてるのかもしれん。

それも成果。
735デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/12(水) 23:23:26.75ID:/aSZJl0C0
ユーザーからしたら、どんなクソコードが走ってようがテストされ尽くして品質保証がされていてちゃんと動いてるならどうでもいいよ。
開発者からしたら、クソコードは工数が膨れ上がる原因になるからやめて欲しいけど。
そして品質保証プロセスがあると面倒臭いルールだらけで足止めを食らうからそういう世界では開発したくない。
でも、MISRAとかはそういう面倒臭いルールで品質を保証するためのもので、辛い開発プロセスを我慢して製品を作り上げられるのはプロの開発者だと思うよ。
それなりに優秀な人、ぐらいだとアーキテクチャを知り尽くしているところまでは行ってないと思うし、
思わぬところで不具合を発生させてしまうものだから。
エレガントなコードかつ、品質の保証範囲も広いコードを書ける開発者なんか極少数なんだからミッションクリティカルなところでは規約で縛ってくしかないと思うよ。
736デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 06:04:03.36ID:UjRsJ9BY0
本書いてるやつらの個人的な好みだの
大事にしたところで結局使えねえバカに合わせろだのと
くだらねえことばかり分厚い本1冊渡してすべて読んで従えなんてやると
やる気なくさせるだけだ
737デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/13(木) 10:30:22.58ID:m1xh97jBF
他人を騙すのが上手いのがプロっていうイメージ
738685 (ワッチョイ e52c-178q)
2020/08/13(木) 10:37:21.72ID:b3k2BUbg0
著者の好みとか、そういう次元ではない

日本の大企業のトップ、50人が集まっても、誰も規格を知らない。
規格の研究は、それだけで何十年も掛かるから、開発者ができない

基本、企業には、そういう開発しない人は、いらない

だから日本には、規格に精通した研究者がいなくなった。
江添亮ぐらい

だから、欧州のMisra-C に聞きながら、作った。
でも、欧州側にも詳しい香具師がいないのは、同じ。
日本側が、欧州側の間違いを訂正したりもしてる

企業としては、規格だけを何十年も研究しているような香具師を雇わないのだろう。
だから、まぎれなく書かないと、誰も規格を調べられないから、困る
739デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 11:16:30.65ID:UjRsJ9BY0
馬鹿か
家電量販店くらい覗いてみろ
新規格が発表されるたびにメーカー各社いち早く対応製品出してるだろ
740デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/13(木) 11:32:05.85ID:VDPM7Buu0
成果物という言い方に違和感。

普通に製品で良いのでは?
741デフォルトの名無しさん (ワッチョイ 81da-++7W)
2020/08/13(木) 11:37:09.38ID:YgH3wASL0
>>740
製品作ってるわけじゃないからな
742デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/13(木) 11:37:44.29ID:nPN4GQVV0
コンパイラの新しい規格が決まりました
対応する新製品、本日発売です
743デフォルトの名無しさん (ワッチョイ 2252-MHHw)
2020/08/13(木) 12:02:05.37ID:oBQ5L51M0
>>738
前々から馬鹿だとは思ってたが、ここまで馬鹿だとは
744デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 12:25:23.76ID:UjRsJ9BY0
>>742
まさかとは思うがイヤミのつもりか?
745デフォルトの名無しさん (ワッチョイ c219-k0xq)
2020/08/13(木) 12:35:10.28ID:l61yvHm+0
社内で使うツールなんかも製品なんていうのか?
むしろ成果物のほうが一般的に使う用語だと思うぞ
もしかしたら業界によって違うかもしれんが
大体の業界でプログラムだけで製品にならんからな
746デフォルトの名無しさん (ドコグロ MM61-eTOa)
2020/08/13(木) 12:37:35.56ID:jTOLwBsaM
>>740
成果物は製品に限らんから
テストコードや、テストデータ、テスト結果のドキュメントとかもあるし
747デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/13(木) 13:13:16.97ID:CM5c4LB70
つまり間接成果物か。

作る意味あんのそれ
一銭たりとも稼いでないじゃん

それとも中間体なの
748デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/13(木) 13:20:07.07ID:KaPqduB6F
言葉遊びだしどうでも良いけど

副産物って言うかな
749デフォルトの名無しさん (スップ Sdc2-k0xq)
2020/08/13(木) 13:21:11.74ID:sAiv34b1d
稼いでるでしょw
そういうのでお金もらったこと無いの?
お仕事知らなすぎでしょ
750デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/13(木) 13:41:31.84ID:CM5c4LB70
やっぱり視点がここまで違うんだな
お前にやるカネなんてどうでもいいよ
製品が稼いでくるカネに興味あるんだよ

だから間接成果物だろ

経理の奴らにだって給料渡してんのは誰でも知ってるよ
751デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/13(木) 13:52:23.74ID:3qG7aIhA0
青果物だろ。八百屋の自覚があるのかねキミたちは。
752デフォルトの名無しさん (ワッチョイ 49b0-p5K4)
2020/08/13(木) 14:04:17.63ID:TgMttUh/0
テストもされていない作りっぱなしの製品にお金払ってくれる顧客ばかりじゃないしなぁ
753デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/13(木) 14:08:20.70ID:RDWqdqfD0
>>748
> 副産物って言うかな
言葉遊び以前にそれ全然違う言葉だぞw
754デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/13(木) 14:12:24.56ID:RDWqdqfD0
>>750
まじで知らんのか?
設計とかテストだけ受託というお仕事もあるんだよ
もちろん納入したドキュメントに対してお代はいただくけど、設計書とかテスト結果報告書を製品とか言う奴はいないだろ
755デフォルトの名無しさん (ワッチョイ d166-k0xq)
2020/08/13(木) 14:23:51.21ID:BqAuLMN60
会社から外に出るあらゆるものがすべて製品である、ってのなら言いたいことはわかるよ
でも個人的な感覚ではすべてを製品というのは言葉のとる範囲が広すぎる
設計書やテスト関連のドキュメントなんかを製品とは言いづらい

そういうふわっとしたもの含めてプログラマのアウトプットを一言で表すものとして成果物って単語を使ったにすぎない
756デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 15:20:08.51ID:UjRsJ9BY0
>>747
おまえPGとかいう以前に工業人でさえなさそうに見えるぞ
757デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/13(木) 16:24:26.08ID:GUNSShX60
データベースかプロジェクトデータで話が通るように初めからやっとけ。
後でこれがないあれがないあるのが常識やろは馬鹿な日の丸会社に多い。
758デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/13(木) 16:34:29.68ID:UjRsJ9BY0
PGは納品用のコードだけ書いてるわけじゃない
納品に至るまでの内輪で必要になるコードが色々あるかんな

PG経験ないやつに舞台裏の事情がわからんのは当たり前
759デフォルトの名無しさん (ワッチョイ e9e6-wj9T)
2020/08/13(木) 20:33:00.03ID:5JTzAfSL0
間接成果物www
760デフォルトの名無しさん (ワッチョイ e501-/T98)
2020/08/13(木) 22:12:33.85ID:uUPpxsEe0
言葉があやふやな人って本当に仕事してんのか不安になるね
761デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 05:26:27.88ID:a6sLiNyt0
でもProductを成果物と訳してるじゃないですか。

これ、オープンソースは無料なので、製品と訳せなかったんですよね?

無料でも製品で良いのでは?
762デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 06:17:07.84ID:a6sLiNyt0
念のため記しておきますが、成果物という言い回しは昔からよく使われていたものではなく、JFから始まったスタイルです。

つまり翻訳に起源があります。
763デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 06:26:00.09ID:rGV5Pz8z0
開発費だけの受け取りは不正の温床となるので必ず物の納品を義務化しています。
764デフォルトの名無しさん (ワッチョイ 9901-E2Bm)
2020/08/14(金) 06:39:27.33ID:a6sLiNyt0
そういう場合は、JIS用語である中間製品、半製品と言ってるじゃないですか。

オープンソースのときだけ成果物というのは違和感がある。
765デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/14(金) 06:50:36.22ID:dINeHZlk0
>>762
我が社では、成果物という言い回しはJF以前からよく使われていたなあ。
766デフォルトの名無しさん (ワッチョイ d17f-xn0R)
2020/08/14(金) 09:55:53.25ID:JGhukcXO0
大企業間の契約書でも実担当者間の会話でも普通に使われる言葉だし、違和感があるのは単に自分の周りで使われてなかっただけでないかと。
767デフォルトの名無しさん (ワッチョイ c2a5-by2p)
2020/08/14(金) 10:01:34.96ID:SEg+bPfj0
>>754
本当に話が分らんヤツだな
先方に納めたテストは、先方で『稼働』して直接はカネ稼いでないだろ

お前がいくら貰ってようとそんなの関係ない
作ったモン書いたモンが納入先で金稼ぎのツールとして動いてるかどうか、だ
ツール使ってる側から見て、それが直接稼いでるから直接成果物だ

書いてる側の視点なんてのは本当にどうでもいい
お前がどんだけ苦労して作ったとか、作るためにカネ貰ったとか、全くそういうのは関係ないし、不要で、いらないんだ
主観まみれの感情論や精神論は気持ち悪すぎていらないんだよ

で、顧客は、エンジニアが作った器械装置やプログラムを使って稼ぎ出すカネの方に興味がある
768デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 10:26:56.96ID:Us3wnTKB0
マ板に移動しろ、クソども
769デフォルトの名無しさん (ワッチョイ 4201-eTOa)
2020/08/14(金) 10:35:04.04ID:sRXPDhxm0
>>767
>>743w
770デフォルトの名無しさん (ラクッペペ MM26-snu4)
2020/08/14(金) 10:55:52.26ID:P4eFhUvDM
>>768
ルールが理解出来ない
ルールは理解出来るが守れないまたは守る気がない
こういう人は頭の悪い人だから話が通じると思っちゃ駄目だよ
771デフォルトの名無しさん (ワッチョイ 8101-1RiF)
2020/08/14(金) 14:35:53.28ID:5R1OsKN50
アマチュアのプロジェクトにへっぽこプログラマは参加できないが
プロのプロジェクトはへっぽこプログラマの方が多い
772デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 14:41:42.13ID:2wR+X/g+0
確かにハッカー集団にボーガスは入れてもらえないね
773デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 15:33:21.13ID:Z47jWul30
>>772
中国の方ですか
やりたいことが金もうけだけなら不動産屋はどうですか
774デフォルトの名無しさん (ワッチョイ 7197-9ujE)
2020/08/14(金) 15:41:56.15ID:Z2/UjnqU0
間接成果物を作るのは無駄、というのは、
顧客が絶対チェックしないんだけどなぜか成果物として要求される、
中間工程を納品用にドキュメント化したもの、を作るのが無駄と言ってるのかな

まあ、わからんでもないけどそれがあれば顧客に引き継げる場合もあるし、ケースバイケースのような。
775デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 16:23:44.04ID:2wR+X/g+0
>>773
???
なんで支那の話になるんだ?

もしかしてクラッカーのことをハッカーと呼ぶ手合いか?
776◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/14(金) 17:59:05.92ID:txNZsWd8H
>>773
>やりたいことが金もうけだけなら不動産屋はどうですか
不動産は儲かるのですか?とても信じられませんね
むしろ株でしょう、それも米国株が儲かるのでは?
777◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/14(金) 17:59:52.43ID:txNZsWd8H
>>775
あなたの世界ではどうだか知りませんが、世間一般ではハッカーとクラッカーは区別せずに両者とも単にハッカーといいます
ご存じなかったのですか?馬鹿ですね
778デフォルトの名無しさん (ワッチョイ 4914-056u)
2020/08/14(金) 18:05:29.78ID:8V/zklnR0
>>777
どこの一般だよ
お前らドカタの世界か?
779デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:05:35.24ID:2wR+X/g+0
>>777
手合いかと聞いているのを知らないからと思ってしまう
おまえさんの脳味噌こそ深刻なバグ抱えてるぜ

PGの世界でどうだか知らねえのか
マジでトーシロだな
この板では家畜以下の身分てことを自覚しろな
780デフォルトの名無しさん (エムゾネ FF62-jwrZ)
2020/08/14(金) 18:16:58.51ID:zY2s9ydfF
投機的な不動産投資は儲からんかも知れんが
マンションとか土地持ってて他人に貸すのは儲かるで
781◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/14(金) 18:22:40.86ID:txNZsWd8H
>>778-779
世間一般ではハッカーとクラッカーとは区別しません、両者ともハッカーといいますね
狭い業界ではハッカーとクラッカーを区別して、いいニュアンスを持つものだけをハッカーとしたいようですが、世間はそうは見ておらずハッカーもクラッカーもどちらも危ないものという認識だから両者を区別していないのです
狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しないという、いい例でしょう、ことわざにもありますよね「井の中の蛙大海を知らず」もっとも海水に耐える蛙は私もしりませんが

そうそう、どうしてもハッカーとクラッカーを区別したいんだったら「ホワイトハッカー」という言葉はある程度認知されているようですから、それを使いなさい
早く馬鹿が治るといいですね
782デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 18:33:09.65ID:2wR+X/g+0
>>781
まさにパンピーには通じてねえな
おまえだよ、おまえ

ボーガスにすらなれない家畜以下のおまえ
783デフォルトの名無しさん (ワッチョイ 6277-p5K4)
2020/08/14(金) 18:47:19.76ID:cDg5L/fg0
防衛と侵略が区別できない政治家がいる国だもの。
784◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/14(金) 19:01:12.85ID:txNZsWd8H
>>783
敵地攻撃能力は防衛ですか、それとも侵略に入りますか?
そしてその理由は?
785◆QZaw55cn4c (NZ 0H8a-nBdZ)
2020/08/14(金) 19:01:57.94ID:txNZsWd8H
>>782
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
>狭い蛸壺で自分勝手にルールを決めても、そんなことはパンピーには通用しない
786デフォルトの名無しさん (ワッチョイ c20e-p5K4)
2020/08/14(金) 19:11:49.78ID:2wR+X/g+0
>>785
パンピー認めたか、よしよし
家畜以下なクズwww
787デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 19:28:49.23ID:Us3wnTKB0
ここはどこの板で、
なんのスレだかも
見ようともしないのか
788デフォルトの名無しさん (ワッチョイ d17f-xn0R)
2020/08/14(金) 21:45:06.99ID:JGhukcXO0
古語で言うところの、夏厨ってやつだね
789デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/14(金) 22:07:33.94ID:Us3wnTKB0
次スレから、IP強制表示にした方がいい?
790デフォルトの名無しさん (ワッチョイ 4290-o4rh)
2020/08/14(金) 22:13:46.18ID:yLQKJUZJ0
その方がいいと思う
いささか荒れすぎ感
791デフォルトの名無しさん (ワッチョイ 4946-+LRH)
2020/08/14(金) 22:39:41.29ID:AXcHM7Xg0
>>789
いくない。
ワッチョイも要らない。
792デフォルトの名無しさん (ワッチョイ 468c-1RiF)
2020/08/14(金) 22:41:53.95ID:h2QIVB9f0
C言語で制約論理プログラムができるiZ-Cでサンプルログラムを書き始めました。
ちょっと夢があるので見てね。
https://sunasunax.hatenablog.com
793デフォルトの名無しさん (ワッチョイ 81da-++7W)
2020/08/15(土) 00:46:37.07ID:xVZ93qLw0
>>792
本人のふりをして荒らさせようとするのはやめろ
794デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 12:58:19.65ID:Y9oiVJFr0
2次元配列への走査方向を行と列で入れ替えた際のパフォーマンスの違いは
何に起因するのでしょうか?
いずれにしてもソース上はランダムアクセスに違いないと思うのですが.

https://ideone.com/VjhO3l
795デフォルトの名無しさん (スッップ Sd62-NiDN)
2020/08/15(土) 13:28:06.72ID:Ol0PEc3Yd
キャッシュ
796デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:36:54.66ID:cGC1PAzNF
>>784
ウィルス持ちの観光客が最強と判明しました
797デフォルトの名無しさん (ワイーワ2 FF8a-jwrZ)
2020/08/15(土) 13:38:45.66ID:cGC1PAzNF
>>794
メモリの連続性じゃないの?
798デフォルトの名無しさん (ワッチョイ 3163-p0wA)
2020/08/15(土) 13:43:34.64ID:0tc6f7mC0
今のPCってメモリーいっぱい積んでいるから、
よっぽど大きな配列出ないと差が出ないかも知れない
799デフォルトの名無しさん (ワッチョイ 4961-IBtm)
2020/08/15(土) 13:57:10.40ID:qjcQBNN70
メモリが連続してる方向に走査すればCPUキャッシュが効きやすい
800デフォルトの名無しさん (ワッチョイ 422f-WAQY)
2020/08/15(土) 14:00:10.52ID:fqWla8CQ0
プロセッサのキャッシュにはキャッシュラインと言ってフェッチする単位があるんだよ。
あるアドレスをアクセスしたときラインサイズでフェッチしてあるからその後にそのライン内のアドレスならば速くアクセスできる。
要するに先読みしておいてくれるわけ。
801デフォルトの名無しさん (ワッチョイ 9901-eqxN)
2020/08/15(土) 14:31:56.10ID:Y9oiVJFr0
なるほどarr[i][j]へのアクセスでarr[i]の周辺もキャッシュに乗ることになって、
その近くなら早くアクセスできるんですね。
ありがとうございます。
802デフォルトの名無しさん (ワッチョイ 9f10-fAYc)
2020/08/19(水) 09:31:04.59ID:9mqf8z+n0
>>801
ランダムにアクセスしたいときは
無意味に配列をコピーしてキャッシュに載せるんやで
803デフォルトの名無しさん (スププ Sd9f-wndR)
2020/08/19(水) 12:30:49.32ID:ToVJAng8d
まるでSuperfetchみたいな本末転倒だな
804デフォルトの名無しさん (ワッチョイ 1f05-YpYZ)
2020/08/19(水) 13:40:38.15ID:vFpWtsM/0
>>802
無意味なコピーだとコンパイラに見抜かれたら意味ないよね
805デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:00:17.69ID:/fw6ffjlM
キャッシュに乗せるかどうかってコンパイラの仕事なの?
806デフォルトの名無しさん (ワッチョイ 9fca-8gnn)
2020/08/19(水) 20:01:21.69ID:iriw96df0
メモリアクセスしないといけないのに最適化でそのアクセスが省略されちゃうってこと
807デフォルトの名無しさん (ワントンキン MMdf-Ypyb)
2020/08/19(水) 20:02:45.07ID:/fw6ffjlM
ああそっちか
808デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 20:19:01.78ID:wUlRTy820
-O3でコードが省略されるんですが計測したいのに省略されちゃうと計測できないんですが
-O3は計測するなってことですか?
809デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 20:28:37.21ID:hsLGYVPM0
何らかの方法で「使ってますよ」って教えればいい
810デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:37:28.51ID:wUlRTy820
>>809
この前関数の呼び出しコストを計測しようとしたんですよ

void f() { }

みたいな関数なんですけど
でも-O3にすると関数呼び出しが省略されるんですね
このケースってなにかうまい方法ありますか?
811デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 21:40:25.73ID:wUlRTy820
後出しみたいになってすみませんm(_ _)m
812蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-iJX3)
2020/08/19(水) 21:41:01.00ID:FObCC8uFd
マイナスオーゼロにすればぁ?
813デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:41:20.02ID:4erVQTjid
処理0個
処理1個
処理2個
の関数作って時間はかって処理1個にかかる時間を引き算
814デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:42:15.13ID:4erVQTjid
最適化で展開とかされたらあかんけどね
815デフォルトの名無しさん (ブーイモ MM0f-PYI5)
2020/08/19(水) 21:44:41.25ID:afdzM61xM
最近のコンパイラさんは賢いで〜
816デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/19(水) 21:45:36.69ID:4erVQTjid
最悪アセンブラ見てステップ数数える
関数呼び出しだけならそんな無いでしょ
817デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/19(水) 22:16:05.51ID:hsLGYVPM0
中でグローバル変数に代入してみたら?
コンパイラから見て、どこで使うかは分からないと思うよ
818デフォルトの名無しさん (ワッチョイ 9fda-Dag0)
2020/08/19(水) 23:09:46.74ID:BCDBcsjw0
動的リンクされるようライブラリにすればいいんじゃね?
819デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/19(水) 23:19:26.76ID:wUlRTy820
なるほど
参考にします
820デフォルトの名無しさん (ワッチョイ 9f01-G9q0)
2020/08/19(水) 23:24:44.35ID:1TMyVKY80
void f() {}
-O1以上は削除されるみたいですね(Compiler Explorerで確認)
https://godbolt.org/z/rcdh9x
821デフォルトの名無しさん (ワッチョイ 7ff9-Dag0)
2020/08/20(木) 00:41:38.77ID:di44bxHe0
-O3でコンパイルした時のものを計測したいんだから
なくなる=時間0が正しいんじゃないの?
822デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 11:46:13.26ID:vxwYzwgQ0
前処理マクロの質問です。
ファイルの名前と関数名がコロンで繋がれた文字列を出力するマクロを作りたいです。

具体的には

somefile.cというファイルの中で
int somefnc(void) {
puts(FILE_FUNC);
return 0;
}
みたいなコードが,前処理を経て
int somefnc(void) {
puts("somefile:somefnc");
return 0;
}
というコードに変換されるようなマクロが書きたいです。

どうかよろしくおねがいします。
823デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 13:06:29.61ID:OKbq69D/d
>>822
https://programming-place.net/ppp/contents/c/029.html
824デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 15:49:31.41ID:vxwYzwgQ0
>>823
ありがとうございます。
__FILE__や__func__でファイル名・関数名が取得できることは
知っているのですが,その二つをコロンで繋いで文字列にする方法が
分からないんです。
言葉が足りなくてすいません。

例えば
#define FILE_FUNC __FILE__ ":" __func__
というような定義では,当然ではありますが,
うまくいきません。

__FILE__と__func__を展開しつつ,
間にコロンを入れて,外側を引用符で囲む,
という操作を実現できればいいのですが……。
825デフォルトの名無しさん (スップ Sd1f-RBSG)
2020/08/20(木) 16:13:14.33ID:OKbq69D/d
>>824
前処理の段階で引用符付いたものに置換するから無理
2つの文字列をくっつけて1つの文字列を返す関数を作り、その関数を呼ぶマクロにするとかすればいける
826デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 16:44:22.67ID:RX/3qqm6F
char s[4] = "ABC";
は問題無いと思いますが
char s[4] = "ABCD";
とすると警告出ないのですが
最後の'\0'は無視されるのですか?
それとも意図しない領域に描き込まれているのですか?
827デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:36:07.94ID:h4eQG1wdM
>>824
fprintf(stderr, "%s:%s", _FILE_, _func_)
828デフォルトの名無しさん (ブーイモ MMe3-Ga0Q)
2020/08/20(木) 17:44:00.86ID:h4eQG1wdM
>>826
仕様書6.7.9に余裕があったらnull文字も書き込むよって書いてあるので、余裕がないからnullは書き込まれてないんじゃないかな。
829デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 17:52:19.01ID:RX/3qqm6F
>>828
ありがとうございます

別の質問なのですが
char s[4] = "ABC";
のとき
printf("%2s\n", s);

ABC
まで表示されてしまいます
これを2文字で切るのは
%2s
じゃ駄目なんでしょうか?
830デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 18:19:55.36ID:ajS/uCbw0
%.2s
831デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/20(木) 18:47:15.31ID:RX/3qqm6F
出来たかも知れないありがとう

ちなみに
char s[4] = "A";
printf("|%.2s|\n", s); // |A| 右詰めにならない(左に空白一文字分が出来ない)
printf("|%.-2s|\n", s); // |%.0-2s| って表示される
printf("|%-.2s|\n", s); // |A| 左詰めにならない(右に空白一文字分が出来ない)
なんですけど
printf("|%-2.2s|\n", s);
printf("|%2.2s|\n", s);
で自己解決です
832デフォルトの名無しさん (ドコグロ MM13-8+FT)
2020/08/20(木) 18:55:26.23ID:6pX7b83qM
>824
そもそも__FILE__や__DATE__はリテラルだが__func__ はリテラルじゃないのでそういうことはできない。
833デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/20(木) 19:58:56.88ID:vxwYzwgQ0
>>832
そうなんですね。
とすると,
#define FILE_FUNC(func) __FILE__ ":" func
みたいにして,
実際使う場面で
FILE_FUNC(__func__)
というように引数として渡す,という方法をとればいい
ってことでしょうか。
834833 (ワッチョイ ff28-wQSi)
2020/08/20(木) 20:00:10.19ID:vxwYzwgQ0
>>833
あ,当然
#define FILE_FUNC(func) __FILE__ ":" func
のままではいずれにせよ
"somefile:somefunc"
には展開されませんが……。
835デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/20(木) 23:51:48.90ID:ajS/uCbw0
>>833
#defineで定義してしまうと、再定義でもしない限り、そのソースファイル全体で
一意になる静的なリテラルになってしまうでしょ
一方の __func__ は、各関数内部で、static const char に展開されています
だから、マクロを工夫して置き換えたりするよりも、
>>827 の方法が一番簡潔な方法だと思います
836デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/21(金) 12:10:40.53ID:RjoBQXpc0
>>835
わかりました。ありがとうございます。

>>827さまもありがとうございました。
837デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 17:03:22.67ID:/1umECfd0
ところで、何で__FILE__は直に文字列リテラルに置換され
__file__は暗黙に宣言される配列の識別子なんだろうな

まさに822が陥ったような混乱の元だと思うが
そうしなければならない理由があるのか
838デフォルトの名無しさん (ワッチョイ ffe9-YpYZ)
2020/08/21(金) 17:31:23.64ID:J6Koy0SX0
>>837
__func__ のことなら、構文解析が要るからでしょ。
ファイルはプリプロセッサの中で自然にわかるだろうけど、現在位置がどの関数の中か(あるいは関数の外か)はわからない。
839デフォルトの名無しさん (ワッチョイ 1fbb-Dag0)
2020/08/21(金) 18:15:49.48ID:GWEzflke0
ああ、だから大文字じゃないのね
840デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/21(金) 18:46:45.25ID:/1umECfd0
>>838
ああ、そうか
翻訳フェーズ(7)でやっと関数名が判明するから
翻訳フェーズ(4)では置換できないってことか
当たり前っちゃ当たり前だな
気が付かなかった
841デフォルトの名無しさん (ワッチョイ 7fad-RTUg)
2020/08/22(土) 10:09:37.81ID:K3IJhML30
>>401
> 何に使うかでそんなに変わるか?

亀レスでごめんなさい。
GUIを含むかどうかでちょと変わると思う。
WindowsならやはりVisualStuidoが便利だった。
Linux、UNIXならgcc,vi,makeの3種の神器かな?
842デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 11:52:50.75ID:c6c4SV8K0
for文の制御式にポインタが単独で使われているコードの意味が分かりません。

https://git.musl-libc.org/cgit/musl/tree/src/locale/catopen.c#n43
ここにある

const char *path, *p, *z;
path = getenv("NLSPATH");
for (p=path; *p; p=z) { // ← これ
...
}
こんな処理です。

繰り返しの際に実行する式にポインタを置くことで
どういう処理が行なわれているのか解説していただけないでしょうか。
どうかよろしくおねがいします。
843デフォルトの名無しさん (エムゾネ FF9f-fHWV)
2020/08/25(火) 11:57:23.18ID:Zt9gBA2MF
*p なら文字終端 '\0' チェックしてるだけじゃね
for (p=path; *p != '\0'; p=z) {
と一緒
844デフォルトの名無しさん (ワッチョイ 1fbb-n+O8)
2020/08/25(火) 12:06:04.67ID:IYsRryaL0
p=zの方が気になる
845842 (ワッチョイ ff28-wQSi)
2020/08/25(火) 12:36:19.71ID:c6c4SV8K0
>>843
なるほど!
for文の中でpを:ごとに削っていっているので,
それが空になるまで廻すという意味になるんですね。

*p != '\0'はメッチャ分かり易い書き換えでした!
(*pとだけ書いてあっても難なく読めるようにならないと
いけないとは自覚していますが……)

>>844
すいません,ほぼ追加で質問する形になってしまうのですが,
どういうところが気になりますか?
教えていただけると勉強になります。
846デフォルトの名無しさん (ワッチョイ 9fbd-8gnn)
2020/08/25(火) 12:36:38.95ID:N6/CJWHL0
>>842
*p は、その位置の文字が '¥0' じゃなければループ内に入る判定。
ようするに文字列の終端にたどり着くまでループするということ。
p=z の z は、ループ内で p から見た文字列の中の ':' がある位置の次が入るようになってる。
ようするに path を ':' 区切りにした断片を一つずつ処理してる。
847デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 12:44:35.72ID:mY7DCxIU0
>>844
z = __strchrnul(p, ':'); で ':' 毎に切り出して処理して、次の項目に移動してるんでしょ
848デフォルトの名無しさん (ワッチョイ 1f7c-F02t)
2020/08/25(火) 12:48:06.50ID:lcyhmMWC0
strtok : ぼくの出番は・・・
849デフォルトの名無しさん (ワッチョイ 9f63-n+O8)
2020/08/25(火) 12:55:51.83ID:ch0Vj7Ea0
こういう2重ループは生理的に好きになれないw
850デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 13:24:37.63ID:c6c4SV8K0
>>848
たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。

__strchrnul()はここで定義されていますが,
http://git.musl-libc.org/cgit/musl/tree/src/string/strchrnul.c
strtok()の仕様
https://pubs.opengroup.org/onlinepubs/9699919799/functions/strtok.html
を見ても,ほとんどインターフェースも同じに思えます。
(引数の型がちょっと違う?)

strtok()関数自体を実装しているならともかく
外部から使用するのにわざわざstrtok()と仕様がそっくりな
独自の関数を用いる理由が分からないですね。
851デフォルトの名無しさん (ワッチョイ 7f01-3yFl)
2020/08/25(火) 14:01:32.20ID:mY7DCxIU0
>>850
> たしかになぜstrtok()ではなくて独自関数を使うか気になりますね。
strtok( ) は与えられた文字列書き換えちゃうし内部状態を持つので今どき使うのはやめた方がいいと思うぞ
852デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:02:43.34ID:DOmxfygr0
再入可能じゃないからね
853デフォルトの名無しさん (ワッチョイ 7f7c-YpYZ)
2020/08/25(火) 15:06:17.67ID:fzTrphgL0
既存関数を使えばわざわざ文字列をループで処理する必要は無いと思えるけど
例えば昔から良くあるコマンドライン引数をチェックする場合などは
ループで処理するのが一般的かなと思われる

簡単なコードを書いてみたので確認してみるといいかも
https://paiza.io/projects/e/0d-LM04O2-C1g6xC2uXP5w
854デフォルトの名無しさん (ワッチョイ 1fd4-YpYZ)
2020/08/25(火) 15:08:24.49ID:DOmxfygr0
コマンドライン引数にstrtokは全く向かない
引用符使われただけでアウト
ASCIIコードしか想定していない
855デフォルトの名無しさん (ワッチョイ ff28-wQSi)
2020/08/25(火) 15:38:28.41ID:c6c4SV8K0
>>851
ありがとうございます。
なるほど,
https://www.jpcert.or.jp/sc-rules/c-str06-c.html
にも strtok() を不用意に扱わないようにという記述がありました。
だからわざわざ,strtok()に似ているが与件文字列を変更しない
っていう内部関数を利用していたんですね。

「区切り文字による分割」みたいな処理をする場合は,
strtok()の挙動を完全に理解した上で使うか,
自分で挙動を把握できる内部関数を作るかにするよう心掛けます。
(自分で1からC言語を書けるようになるのは
当分先のことになるとは思いますが)
856デフォルトの名無しさん (ラクッペペ MM4f-N8Ih)
2020/08/25(火) 18:08:51.59ID:efL3nra7M
ライブラリ関数内部で同じライブラリで公開してる別の関数を呼び出すのはエラー時に滅茶苦茶になりそうだから良くない
857デフォルトの名無しさん (ワッチョイ 9f01-Dag0)
2020/08/25(火) 19:42:36.86ID:KqJVwSUy0
へぇ __strchrnul だと非マッチ時 zがヌルポにならないようになってんのか
858デフォルトの名無しさん (ワッチョイ 6ed2-1etN)
2020/08/26(水) 07:47:13.52ID:EcgUuw1J0
文字列はS-JISのこと考えて自分で作るか
逆にunicodeで全部ライブラリに任せるかしてるわ。
859デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/26(水) 07:57:09.94ID:68jGS2+/0
こないだユニコード文字列を扱うライブラリを作ったんだが、Poweshellから使うとうまく動作しないでやんの
Bashだとうまくいくからシェルの文字コードが原因かなぁって
860デフォルトの名無しさん (ワッチョイ 6991-3XxJ)
2020/08/28(金) 14:09:17.18ID:Rsi3PU970
Poweshell 相手 なら UTF16で試してみて
861デフォルトの名無しさん (ワッチョイ a5bb-xiBb)
2020/08/29(土) 18:11:22.84ID:uw2IISYA0
>>860
サンクス
覚えておく
862デフォルトの名無しさん (ワッチョイ 27d2-XrX+)
2020/09/05(土) 12:34:48.17ID:inRyx+ft0
一時期ソースファイルで使われる文字コードと
テキストコマンドで指定される文字コードで混乱してた。
863デフォルトの名無しさん (ワッチョイ 675f-th+2)
2020/09/05(土) 14:24:19.26ID:D6IgUwp/0
ファイルシステムもコードページあれば良いのに
864デフォルトの名無しさん (ワッチョイ 5f2f-yCsQ)
2020/09/08(火) 19:54:58.87ID:XpL2+zA20
すみません
visualstudio2019で
scanfてうまく動かないて
書き込みありまさしたが
こちらは初心者です
865デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 20:04:29.03ID:oUJlYCUI0
何がうまくいかないの?
866デフォルトの名無しさん (ワッチョイ e7e6-dQ4P)
2020/09/08(火) 20:07:28.59ID:SzSjgAIn0
>>864
母国語でおk
867デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 20:33:38.44ID:h4K4tlm90
>>866
ماذا علي أن أفعل لتحسين عمل Scanf؟
868デフォルトの名無しさん (ワッチョイ 5fa5-w/i8)
2020/09/08(火) 20:57:51.12ID:dd3/c9tT0
>>864
scanf_sを使うんだよ
869デフォルトの名無しさん (ワッチョイ 27b7-XrX+)
2020/09/08(火) 21:00:35.32ID:oUJlYCUI0
自分が初心者だった頃を忘れて弱い者いじめするクズばっかり
870デフォルトの名無しさん (ワッチョイ 87e6-+pFZ)
2020/09/08(火) 21:38:18.70ID:L9CYXS2m0
ここの連中は初心者の時でもこんな愚かな質問しなかっただろうからな
871デフォルトの名無しさん (ワッチョイ 7f63-n8ne)
2020/09/08(火) 21:48:40.05ID:i07xiLbJ0
かまって欲しいだけだろう
872デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 22:29:20.68ID:h4K4tlm90
よしよし かまってあげよう おいで〜
873デフォルトの名無しさん (ワッチョイ 27bb-n8ne)
2020/09/08(火) 22:40:52.39ID:5p23t/CB0
(≧▽≦)きゃー
874デフォルトの名無しさん (ワッチョイ 0701-P8XZ)
2020/09/08(火) 22:50:33.61ID:h4K4tlm90
(*-ω-)ヾ(・ω・*)ナデナデ
875デフォルトの名無しさん (ワッチョイ 1101-mScE)
2020/09/10(木) 22:31:27.77ID:XqO8hjOE0
>>869
ここ初心者向けじゃないし
876デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 06:53:15.69ID:Cxw4gZ+X0
クズは認めるわけか
877デフォルトの名無しさん (ワッチョイ c5e6-nmCw)
2020/09/11(金) 09:46:30.88ID:t2oJFSgB0
この初心者のほうがよっぽどクズ
878デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 11:05:17.65ID:Cxw4gZ+X0
クズを認めるからこそ比較できるわけだな
879デフォルトの名無しさん (ワッチョイ ea90-gr/N)
2020/09/11(金) 13:23:30.52ID:eRvWHPbG0
クズでもなんでもいいから正しい日本語を使って質問しなさい
880デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/11(金) 16:01:28.53ID:Cxw4gZ+X0
ほらな、質問者がクズかどうかは関係ないんだよ
881デフォルトの名無しさん (ワッチョイ 8d7f-sGGD)
2020/09/11(金) 17:04:12.34ID:ua52u3Jr0
お互い(屑であると)認め合う姿は美しいですね
882デフォルトの名無しさん (ワッチョイ b501-zsLS)
2020/09/12(土) 02:19:04.35ID:SzTm78BI0
静かになるまで5分かかりました(ry
883デフォルトの名無しさん (ワッチョイ 3628-oJ0F)
2020/09/14(月) 21:43:37.62ID:8/TQSAVT0
https://hnw.はてなブログ.com/entry/20130406
この記事(海外の質問箱の邦訳)に対するコメントで,
do{
...
} while (feof(input))
というコードが提案されているのですが,どう思われますか。

少なくとも一つの問題点(余分なループ)は克服できている気がしますが。
884デフォルトの名無しさん (ワッチョイ eaad-pVuC)
2020/09/15(火) 00:55:31.70ID:2J2Mo0F/0
>>883
コメントって、どこにあるの?

まあしかしそう書いたとしても c = fgetc(input) をやった直後の c の値が EOF かどうかを調べる必要があって、
EOF だったらループを抜ける必要がある。do { ... } while (feof(input)); のループ内に if ((c = fgetc(input)) == EOF) break; を
入れるとすると最後の while の条件は無駄だ。決して EOF に到達していないから。
885デフォルトの名無しさん (ワッチョイ 6da9-/xaV)
2020/09/15(火) 01:38:55.84ID:GcvmEeWM0
>>883
中身が空っぽなinputだったらどうする?
886デフォルトの名無しさん (ワッチョイ f1b7-pVuC)
2020/09/15(火) 07:29:42.10ID:YjwP830M0
後判定といえば自明な弱点があるね
887デフォルトの名無しさん (ワッチョイ 3628-oJ0F)
2020/09/15(火) 11:24:23.73ID:DboEcGlM0
>>884
はてなブックマークです。
https://b.hatena.ne.jp/entry/139652170/comment/rin51
888デフォルトの名無しさん (ワッチョイ eaad-pVuC)
2020/09/15(火) 13:34:11.71ID:2J2Mo0F/0
ま、しかし、よくよく考えてみると feof() って使い所がほとんどないのではないか?
fgetc() が文字だけでなく EOF まで返す仕様になっているから使わずにも書けてしまうよね。
単にEOFになった後かどうかだけを調べたい場合は fgetc() 使ったら無駄な処理になるけど。
889デフォルトの名無しさん (ワイーワ2 FF92-e6VR)
2020/09/15(火) 13:46:37.73ID:i/gZOuAlF
そもそも feof 使わないよね?って話題だし
890デフォルトの名無しさん (ワッチョイ 1163-pVuC)
2020/09/15(火) 14:02:51.06ID:pUsOBU6W0
fgetc()等はファイルを最後まで読み取った場合だけでなくエラーの場合もEOFを返すことになってるから
どちらの状況か区別するためにfeof(),ferror()はあるんだろ
区別しなくていいなら使わんわな
891デフォルトの名無しさん (ワッチョイ ea01-hEa4)
2020/09/15(火) 14:14:08.17ID:8CWM1WbO0
>>883
ダメダメって書いてあるやろ

rero
ferror の条件が成立した場合,feof の条件は成立せず,無限ループになる.
ループ脱出条件にはfread / fscanf / fgetc などの戻り値を使う.
feof は ferror との切り分けにのみ使う.
2014/02/04
892883 (ワッチョイ 7f28-5uLG)
2020/09/16(水) 18:30:21.50ID:+0jueX8G0
ありがとうございました。
893デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 12:37:14.53ID:3L04nVD50
関数定義の書式『例えばprintf関数なら、 int printf(const char * format, ...) 』とかで、関数の引数の型指定が含まれてるけど、これの指す具体的な意味って何?
例えば、const char*型が指定されていたとして、
1、「const char*型でなければならない」
2、「他の型も使えるがconst char*型を推奨する」
3、「色々と対応してるけど代表としてconst char*型を挙げる」
4、「1〜3のうちどれか、関数毎にケースバイケースで具体的には決まってない」
関数定義の書式における型指定には、どのような意味が込められてるんですか?
printf関数では、普通に文字列を入れた配列のポインタ(char *型)にも対応してるので、2か3なんだろうけども。
関数定義書式に含まれる型指定は、1〜4のどれなのか、C言語では統一的に指針が決まってますか?
894デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 12:40:32.43ID:OW2OZx8DF
1
895デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 12:50:38.33ID:3L04nVD50
printf関数の場合では、「char*型が使えるように見えるけど、色々と問題起きるからconst char*型以外は禁止」ということなんですか。
分かりました。
896デフォルトの名無しさん (ドコグロ MMdf-aBI4)
2020/09/17(木) 12:53:34.67ID:uk2B69G8M
const char*はchar*の指す先を書き換えないだけで同じものなのでconst char*をchar*で初期化してなんの問題もない。暗黙変換してくれる。
逆は書き換えられないconst char*が書き換えできる様になってしまうので暗黙にはしない様になっている。
897デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:02:01.33ID:9/9M+ZB20
こんなこともできるけどね
static /* const */ char str[] = "hello stupid people";
printf(str);
898デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 13:08:31.54ID:OW2OZx8DF
質問のレベルから忖度すると
質問者が気にしてるのは
ひょっとすると
...
の部分の方なのかも知れない
899デフォルトの名無しさん (ワッチョイ f77c-E8AY)
2020/09/17(木) 13:10:16.65ID:/CJv2N4s0
#include <stdio.h>

int main(int ac, char **av)
{
int p = 0x000a0d41;
printf((char *)&p);
return 0;
}
900デフォルトの名無しさん (ワッチョイ bf8c-CUqR)
2020/09/17(木) 13:40:44.35ID:PwEIVjdJ0
関数定義の引数が配列で書けるようになったのはいつから
int func(array[5]){
.......
}
901デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:45:22.35ID:9/9M+ZB20
型指定子がないけど暗黙intってことか? 無理だと思うけど
902デフォルトの名無しさん (ワイーワ2 FFdf-SP/v)
2020/09/17(木) 13:46:44.16ID:OW2OZx8DF
昔から
903デフォルトの名無しさん (ワッチョイ 177f-mv5V)
2020/09/17(木) 13:52:07.27ID:qRMpu/GI0
>>899
明示変換してるのに暗黙変換もさせるのは読みづらいよ
904デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 13:55:11.12ID:9/9M+ZB20
つーかさ
pにアドレス演算子つけてるの
何かがわかってない兆候じゃね?
905デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 14:31:37.44ID:3L04nVD50
皆さんのレスを行間を読んでまとめること、こんな感じの理解でいいですか?

代入の際、右辺の値は、左辺の型に暗黙変換される。
int a = 3.5; // duble型リテラルを暗黙変換してaには3が入る
int a = 'a' // const char型?リテラルを暗黙変換してaには文字コードを表す97が入る
int a ="ほげ"; // const char型リテラルを暗黙変換してaにはよくわからん不正値が入る
同様に、関数へ引数を渡すことも代入の一種であり、実引数が代入する側であるから代入式の右辺に相当し、仮引数が代入される側であるから左辺に相当する。
その際、実引数char*型は仮引数const char*型へ暗黙変換される。
int main(void) {
char hoge[] = "ほげ";
printf(hoge); // 実引数hogeは先頭要素を指すポインタchar*型で、暗黙変換を伴って仮引数のconst char*型となる
}
この逆、仮引数char*型に実引数const char*型を渡すのはNG。char*型とわざわざ指定されてる理由は、値を書き換え可能なポインタを求めるためであり、const char*型はダメ。
906はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 14:32:12.65ID:FojOL81h0
>>900
型が書かれていないけどそれはタイプミスだとすれば、
配列形式で仮引数を書くこと自体は昔から出来る。
ただし、配列形式で書かれるとそれはポインタに調整される。

たとえば仮引数が int array[5] だったら int* array と全く同じとみなされる。
配列の大きさの情報は無視される。
(ひょっとすると警告を出すためのヒントにするくらいの処理系はあったりするのかもしれんけど。)
907はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 14:42:51.44ID:FojOL81h0
>>905
暗黙の変換がされる場合とされない場合はあって、

int a ="ほげ";

で暗黙の変換をする保証はない。
C99 だと単純代入で許される型の組み合わせは 6.3.16 に書かれている。

処理系の拡張としてやっちゃうこともあるかもしれんけど、
その場合でも警告は出るんじゃないかなぁ。

> 関数へ引数を渡すことも代入の一種であり

その通りだが、関数原型 (プロトタイプ) がない場合や
可変長引数 (仮引数が ... で表されるやつ) の場合はちょっとルールが特殊な部分もある。

まちがっててもコンパイラが検出できないこともあるので気を付けないといけない。
908デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 16:23:39.93ID:9/9M+ZB20
処理系の拡張ねえ
gccは-pedanticつけないと黙って通す場合あるかんな

>>905
void func(char *);
func("const char array");
これconst違反なのにできちまう
909デフォルトの名無しさん (ワッチョイ bf8c-CUqR)
2020/09/17(木) 17:46:14.08ID:7hPXgG620
>>900
すまぬ訂正
関数定義の引数が配列で書けるようになったのはいつから
int func(int array[][5]){
.......
}
910はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 18:43:35.04ID:FojOL81h0
>>908
C の文字列リテラルは char の配列ということになっているので char* で受け取れる。
型の視点で見ればそのコードに const は登場しない。

文字列リテラルを書き換えようとした結果は未定義であるにもかかわらず
型に const が付かない C のクソなところのひとつ。

(C++ では文字列リテラルの型には const が付く。)
911デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 19:21:07.83ID:3L04nVD50
よく見てみたら使ってるツールがC++用だった。
C言語入門本でインストールを促すソフトが大抵Visual StudioのC++で、
意識せずにC++の開発環境でC言語の勉強をしてたんだな。
それで、C言語の挙動だと思ってたのが、実はC++の挙動だったんだな。const の件もそう。
912デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:39:01.71ID:9/9M+ZB20
>>909
全然配列じゃないじゃん
int func(int(*array)[5]);
これと同じだよ、配列へのポインタ
913デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 19:55:04.93ID:+PkSrmT3M
いくら引数リストに要素数を記述してもコンパイラは無視する
int func(int **array)と同じ扱いでただのニ重ポインタ
914デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:57:19.31ID:9/9M+ZB20
>>913
アホwバカwww
915デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/17(木) 19:58:54.02ID:9/9M+ZB20
char **aho = 0;
printf("%p ", aho);
aho++;
printf("%p ", aho);

printf("%p ", array);
array++;
printf("%p ", array);
916デフォルトの名無しさん (ワッチョイ d793-lMKa)
2020/09/17(木) 19:59:49.49ID:3L04nVD50
でもまあプログラムの再利用性を考えたら、constの件は、C++仕様に配慮して省かないことが大事か。
C++に配慮したコードを書くことで、C言語でもC++でも通用するプログラムとなり、プログラムの再利用性が上がる。
C言語ではconstを省くことが文法的には認められてても・・・・・C++に流用できないプログラムは、たぶんコードとしては減点となる。
917デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:03:53.36ID:FZAv8QRcM
>>914
いや、マジで関数に配列を渡せると思ってるの?
配列の引数はポインタの引数の糖衣構文だよ
どうしても配列を渡したい場合は配列を構造体で包めば要素数を関数に渡すことは出来る
918はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:05:11.15ID:FojOL81h0
>>913
いや、それは >>912 が正しい。
二重ポインタにまで調整されてしまうと
関数 func の中で array[1][3] みたいなアクセスが不可能になってしまう。
ポインタへの調整はあくまで一段階のみ。
919はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:08:22.99ID:FojOL81h0
>>917
配列を渡すのではなく「配列へのポインタ」だ。
配列は多くの場合に配列の先頭要素を指すポインタに暗黙に型変換されるけども、
それとは別に配列を指すポインタというものが存在し、
指す先の配列の大きさは型情報として保存される。
920デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:13:48.15ID:9q71Nrm0M
関数の引数として配列を渡す場合、アドレスと要素数は別に渡す必要がある
関数内で要素数を知る手段はない
int func(int **array, int i, int j)
921はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:14:06.25ID:FojOL81h0
int array[][5] という配列があったとしたら、その先頭要素の型は int [5] なので、
通常通り配列の先頭要素そ指す型に型変換したら int (*)[5] になるんだ。
仮引数の側もそれと同じような調整が入る。
922デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:19:02.57ID:9q71Nrm0M
それは配列の変数宣言の場合だ
仮引数の場合には当たらない
923はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:29:34.78ID:FojOL81h0
>>922
JISX3010:2003 から

> 6.7.5.3
> 仮引数を "〜型の配列" とする宣言は、 "〜型への修飾されたポインタ" に型調整する
924デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 20:31:16.69ID:JChOP/F3M
だから糖衣構文だと言ってるだろ
925はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 20:32:41.07ID:FojOL81h0
>>924
構文糖だよ。
でも >>913 の構文糖ではないって話をしてる。
926◆QZaw55cn4c (ワッチョイ 3798-ZLIO)
2020/09/17(木) 20:53:29.25ID:+AujTTfU0
>>916
正直言って、const のありがたみが今一つよくわからないんですよね…
927デフォルトの名無しさん (ワッチョイ 17da-o3gE)
2020/09/17(木) 21:37:33.81ID:VrEKPYEi0
確認してみた
配列が仮引数の関数内で配列の型情報は失われて単なるポインタになってる

メイン関数内配列サイズ 20Byte (int[5] = 4Byte * 5)
関数内配列サイズ 8Byte (int* = 64bit)

C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚
928デフォルトの名無しさん (ラクッペペ MM8f-kMIc)
2020/09/17(木) 21:54:03.82ID:PVWtVfHXM
そう、仮引数の配列要素数はコンパイラに無視される
ただのポインタだから配列サイズは失われている
929デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/17(木) 22:14:39.96ID:ysRkZn2Ya
>>926
うっかり変更しようとしたら、コンパイル時にエラーになるでしょ
930デフォルトの名無しさん (ワッチョイ 177f-mv5V)
2020/09/17(木) 22:35:38.61ID:qRMpu/GI0
>>927
909読め。一次元じゃなくていわゆる2次元配列な
sizeofに*付けるの忘れないように
931はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/17(木) 22:46:13.06ID:FojOL81h0
修飾なしで const になって、変更可能な変数の場合に指定を付けるようになってればよかったのに
という声は一部では根強く有る。
もちろんそんな非互換な変更を C/C++ が受け入れるはずがないので
あくまでももしもの話というか愚痴の類なんだけど。

でも Rust がまさにそうなったので型の厳しさを指向するなら
デフォルトで変更不能な方が自然なのかもしれんね。

個人的には、 C で意識して const を付けるのは関数の仮引数くらいで十分だろう
という程度かな。 そのかわり仮引数の型付けはかなりしっかりしたい。
932デフォルトの名無しさん (ワッチョイ 17da-o3gE)
2020/09/17(木) 23:08:14.29ID:VrEKPYEi0
>>930
sizeofの間接参照の意味がよく分からんけど2次元配列

C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚
933デフォルトの名無しさん (ワッチョイ ff63-LEsg)
2020/09/17(木) 23:13:21.69ID:aQ5w/H9b0
リソースが極限まで制限されるような環境下で動かすことがる
ハードに近い部分を書くことが多かった
最適化の精度が悪かった
みたいな時代背景があるのでデフォルトがconstはナンセンス
もちろん今の時代に1から設計するならそういう言語が出てくるのは当然
934デフォルトの名無しさん (ワッチョイ 177f-PS54)
2020/09/17(木) 23:27:44.50ID:qRMpu/GI0
>>932
sizeof(*array)だよ
935デフォルトの名無しさん (ラクッペペ MM8f-Y+8D)
2020/09/17(木) 23:46:44.97ID:cQbuW7S9M
>>932
>>913は間違いでvoid func(int array[][5]) と void func(int **array) では意味が違うって話だから
それぞれfuncで sizeof(*array) を見ないと意味ない
936はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 00:25:49.56ID:InePzAsW0
普通に array[1][3] みたいにして要素にアクセスするときでも
規格上の理屈では *(*(array+1)+3) の構文糖であるということになってて、
じゃあこれを成り立たせるにはどういう型情報があればいいのか
みたいな方向でパズル的に考えて遊んだりするのも面白いかもね。

あとここまでのやりとりで出てきてないっぽいから注意点を示しておくけど、
配列が暗黙の型変換でそれの先頭を指すポインタになるルールの例外が
sizeof を適用したときと単項 & を適用したときだよ。
937デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 06:03:42.05ID:dDojkzke0
sizeofと&が例外って言い方よく見かけるけど
気持ちの中ではこっちが本来だね

extern int array[]; と
extern int *array; じゃ
意味違うし
938デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/18(金) 06:28:13.21ID:n6muJc1p0
>>933
> リソースが極限まで制限されるような環境下で動かすことがる
> ハードに近い部分を書くことが多かった
> 最適化の精度が悪かった
なんの理由にもなってないと思うが…
単にK&Rがそう言うのに無頓着だっただけだろ
939デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 06:31:46.59ID:dDojkzke0
何の理由にもなってないのはそのとおりだが
なんで無頓着って話になるんだ?
アセンブラで書いていたUnicsを高級言語で書けるようにしようって作ったんだぜ?
940はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 09:01:10.98ID:InePzAsW0
>>937
確かに。

暗黙の型変換の方を中心に説明したから例外という言葉を使ったが、
配列がポインタになる方がよっぽど特殊な話だよな。
941デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 09:11:41.22ID:dDojkzke0
初心者がややこしい規則をこれから憶えようってときには
確かにあの言い方は情報量少なくて憶えやすそうだけど
初心者を卒業したらいつまでもしがみついてると格好悪いね
942デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/18(金) 10:09:00.07ID:n6muJc1p0
>>939
例えばintとポインタの扱いとかみたら結構無頓着だと思わない?
別にそれが悪いと言ってるわけじゃない
高級アセンブラとしてはまあ理解出来なくないし当時のマシン環境の制約もあっただろうしね
943デフォルトの名無しさん (エムゾネ FFbf-SP/v)
2020/09/18(金) 10:37:02.65ID:6n8VMUNiF
ラクッペペ MM8f-kMIc

こいつは無視でOK
944デフォルトの名無しさん (ワントンキン MM7f-zg3h)
2020/09/18(金) 12:10:56.45ID:3NbVdp1XM
そんな感じの2次元配列の引数としてはかけるけど
実際その関数になに代入してもエラー吐くやつとかあったな
945デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 12:52:30.78ID:dDojkzke0
関数に代入ってどゆこと?
946デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 12:54:19.87ID:dDojkzke0
>>942
> 例えばintとポインタの扱いとかみたら結構無頓着だと思わない?

intをポインタにキャストするようなこと?
947デフォルトの名無しさん (ワントンキン MM7f-zg3h)
2020/09/18(金) 16:08:04.83ID:3NbVdp1XM
>>945
引数になにいれてもだった
948デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/18(金) 20:15:43.21ID:dDojkzke0
こういうこと?
void func(int (*array)[5], int **pointer)
{
char a[2][5], *p;

array = a; //ok
pointer = a; //error

array = &p; //error
pointer = &p; //ok
}
949はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/18(金) 23:38:09.01ID:InePzAsW0
>>947
逆に、引数に何を与えても許容してしまうという事例は今でも簡単に書けるね。

https://wandbox.org/permlink/uv5dmsN9NA58k8Wp
950948 (ワッチョイ b7b7-Cup9)
2020/09/19(土) 09:21:06.58ID:FHaFE8730
あ、すまんw
s/char/int/g
951デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 11:02:59.46ID:Uw1s41Nc0
>>949
そうだけど、それは「危険性」には繋らんよな?
引数関連の危険性というのは大抵、
引数を変に実行してしまうことから始まる訳だから。
952はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/19(土) 13:13:28.09ID:cxOsPIuF0
>>951
一応は >>949 も未定義だよ。
呼出規約が cdecl だったら余計な引数は捨てられるだけで問題にならないとは思うけど。

余計な引数を渡すのとは逆に必要な引数を渡さないという例も書けるから、
より危険性がわかりやすいかな。

https://wandbox.org/permlink/1F876xK6UZ4wFjAA

余談だけど関数定義は宣言も兼ねるというルールにおいて、
K&R スタイルの関数定義はプロトタイプを持たない宣言でもあるという扱いだから
別途プロトタイプ宣言をする分にはエラーとして検出される。

https://wandbox.org/permlink/4n574f4R9yq0BzUj
953デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 14:57:40.15ID:Uw1s41Nc0
>>952
> 余計な引数を渡すのとは逆に必要な引数を渡さないという例も書けるから、
たしかにその通りだな。

>>949 のコード例に気をとられて
もとの議論の内容を忘れてたw

thx
954デフォルトの名無しさん (ワッチョイ 7f28-5uLG)
2020/09/19(土) 14:57:50.91ID:Uw1s41Nc0
すまんsage
955デフォルトの名無しさん (ワッチョイ 9f26-XaKm)
2020/09/21(月) 03:21:46.70ID:SqQ7e3H60
>>952
普通先行宣言をちゃんとするだろ
956はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 08:57:54.77ID:sulqQktu0
>>955
普通はする。 すべきだ。 というのがどれほどあてになるか。

普通はすることを (うっかり) しなかったら (エラーとして検出されずに) 通ってしまうってのは
K&R スタイルの関数定義はイケてないねって話。
957はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 08:59:37.43ID:sulqQktu0
K&R スタイルでなくともファイルを分割すると宣言と定義の矛盾が検出されなかったりもする。

// foo.c
void foo(int x) {
}

// foo.h
void foo(void);

// main.c
#include "foo.h"

int main(void) {
foo();
}

このとき foo.c をコンパイルするだけなら foo.h は不要だが
foo.c で foo.h をインクルードしておかないと間違いは検出できない。
958デフォルトの名無しさん (アウウィフ FF5b-SP/v)
2020/09/21(月) 10:49:53.26ID:M8W5JifWF
linkエラーは?
959デフォルトの名無しさん (ワッチョイ 9f01-RDjc)
2020/09/21(月) 11:10:21.40ID:WONfy98d0
>>958
大抵の処理系ではリンクエラーにならないよ
C言語だとコンパイル後は引数の情報は無くなっちゃうから
960デフォルトの名無しさん (アウウィフ FF5b-SP/v)
2020/09/21(月) 11:19:45.80ID:M8W5JifWF
実行時にスタック壊れたり
hangupしたりするんです?
961はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-b3rt)
2020/09/21(月) 12:59:37.93ID:sulqQktu0
>>958
C のオブジェクトファイルは名前しか保存しておらず、
型はヘッダファイルでやりとりするというのが伝統的なデザイン。
だからそれを一致させるのはプログラマの責任。

現代の実装技術なら検出できないことはないはずなんだが、
検出しないのは色々な都合があるんだろう。

>>960
cdecl や fastcall なら関数を呼び出すだけならスタックの整合性が壊れることはないと思うんだけど、
実引数と仮引数がまともに対応付けられていないわけだから
仮引数の読み書き (特に書き込んだとき) には壊れる可能性が高いんじゃないかな。
962デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/21(月) 17:40:26.50ID:PNFNM3Vd0
> 現代の実装技術なら検出できないことはないはずなんだが、

ちゃんとやってるよ
外部参照名の長さの上限を増やすという
後方互換性を損なわない賢いやり方で

それの恩恵を有り難く頂戴しているのがC++
963デフォルトの名無しさん (ドコグロ MMdf-RDjc)
2020/09/21(月) 20:06:59.96ID:CAa9Vr4hM
意味わからん
マンダリングしてるC処理系なんてあったっけ?
別にオブジェクトコードに含ませなくてもデバッグ情報に含ませといてチェックするとかでも良いと思うけどね
964デフォルトの名無しさん (ワッチョイ b7b7-Cup9)
2020/09/21(月) 21:16:44.87ID:PNFNM3Vd0
s/マンダリング/マングリング/g
965デフォルトの名無しさん (バッミングク MM4f-ejv8)
2020/09/21(月) 21:27:28.62ID:r8sxqPhqM
>>963
32bitWindows向けのstdcallは引数等で使うスタックサイズを名前の後ろに付け加える
966デフォルトの名無しさん (ワッチョイ 9f47-SP/v)
2020/09/22(火) 02:46:33.89ID:EwzeVKsQ0
本人が間違ってる分には無視すれば良いだけだが
初心者スレで嘘を撒き散らすのは良くないな
967デフォルトの名無しさん (アウアウウー Sa5b-e7tI)
2020/09/22(火) 09:19:28.05ID:73EWHT9ca
volatileオブジェクトへのアクセスは副作用を生じるというのを見たことがあるのですが
この場合の副作用とは具体的にはどういう事象のことを言っているのでしょうか?
968デフォルトの名無しさん (ワッチョイ bfe9-Cup9)
2020/09/22(火) 09:29:18.39ID:GaogVwml0
>>967
具体例としては、 volatile なオブジェクトへのポインタを通したアクセスをメモリマップドI/Oと対応させることが多い。
https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%A2%E3%83%AA%E3%83%9E%E3%83%83%E3%83%97%E3%83%89I/O
969デフォルトの名無しさん (オイコラミネオ MMab-bB21)
2020/09/22(火) 11:37:01.89ID:duZr+LV8M
>>967
遅くなることがあるということかな?
970デフォルトの名無しさん (アウアウウー Sa5b-e7tI)
2020/09/22(火) 12:21:55.75ID:73EWHT9ca
>>968
レジスタなどにアクセスする際に最適化で誤動作しないようにvolatileを付けるのかなと思ったのですが、
逆にvolatileを付けることによる不都合(副作用)って何かあるのでしょうか
それとも最適化されないことを副作用と読んでいるのでしょうか

>>969
最適化しないことによる処理時間増加でしょうか
971デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/22(火) 12:26:59.11ID:ZRR+59kRa
最適化によって、本来は必要な処理がコンパイラによって省かれてしまうとか
972デフォルトの名無しさん (アウアウエー Sadf-XGHE)
2020/09/22(火) 12:28:12.05ID:ZRR+59kRa
コンパイラの判断によって、一部のコードが生成されないとか
973デフォルトの名無しさん (ワッチョイ 177f-PS54)
2020/09/22(火) 12:48:41.23ID:fNKq19I/0
>>970
プログラミングの世界の副作用とは、不都合とかそんな意味ではなくて、内部状態が変更されるとか、外に何らかの影響を与えるとかそんな意味だよ。

例えばisalpha関数は文字の判定をするだけだけど、printfはコンソールに文字を出力する。
前者は副作用なし、後者は副作用ありだね。

volatileの件はそれが書かれた前後のコンテキストが分からないから何を指してるのか何とも分からんけど、たぶん、>>968に書かれてるように、外部デバイスへの作用のことを指してるんじゃないかな
974デフォルトの名無しさん (ワッチョイ bfe9-Cup9)
2020/09/22(火) 13:01:07.61ID:GaogVwml0
>>970
副作用 (プログラム)
https://ja.wikipedia.org/wiki/%E5%89%AF%E4%BD%9C%E7%94%A8_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0)
> プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、それ以降で得られる結果に影響を与えることをいう。

C言語における定義はこんな感じ。
http://kikakurui.com/x3/X3010-2003-01.html#13
> ボラタイルオブジェクトへのアクセス,オブジェクトの変更,ファイルの変更,又はこれらのいずれか
> の操作を行う関数の呼出しは,すべて副作用(side effect)と呼び(11),実行環境の状態に変化を生じる。
975967 (アウアウウー Sa5b-e7tI)
2020/09/22(火) 17:15:02.44ID:73EWHT9ca
回答ありがとうございました
組み込みの資料か何かでvolatileの副作用についての記述があり質問させていただきました
副作用の意味がいまいち分かってないみたいなので勉強します
976デフォルトの名無しさん (ワッチョイ d602-lsHo)
2020/09/26(土) 02:24:05.62ID:AJ59WF/j0
int main(double a, double b)
{
printf("main");
}
977デフォルトの名無しさん (アウアウエー Saaa-LUZf)
2020/09/26(土) 02:27:39.44ID:80lZAyo5a
コンパイル通るのかな….
978デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/26(土) 05:50:57.90ID:JvTrRG8q0
(void)と(int, char**)以外は処理系定義
コンパイラが対応していれば適格
対応していなければ未定義
979デフォルトの名無しさん (ブーイモ MM5b-ODSS)
2020/09/27(日) 13:50:39.37ID:LQE5yA3hM
crtstartupのお仕事だからコンパイラほぼ関係ないな
大抵の実用リンカは差し替えできるでしょ
980デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 07:00:27.18ID:BXhKM0Xn0
数値リテラル「0」の型は何ですか?

int* p = 0; // これはOK
int* p = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?
int* p = (unsigned int)0; // これもエラーで無理。
printf("%zu", sizeof(0)); // 0の型のサイズを調べると4byteと表示される。
この数値リテラルの「0」の型は何ですか?
ちなみに、まだC言語環境を構築してないから、代わりVisualC++を使ってるけど、他の環境でも起きますか?
981デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 07:30:53.01ID:BXhKM0Xn0
さらに調べると・・・・
キャスト演算子で型を指定した0は、代入の際にint*型へ変換してくれない。
接尾語を付けて型を指定した0は、代入の際にint*型に変換してくれる。

int* p = (long int)0; // NG
int* p = 0L; // OK

int* p = (unsigned int)0; // NG
int* p = 0u; // OK

キャスト演算子で型を指定すると、代入の際の暗黙的な変換が禁止される仕様とかあるんですか?
982デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 07:54:15.67ID:QxfbhGyV0
>>980
intだよ

D:\learn>gcc --version
gcc (Rev2, Built by MSYS2 project) 10.1.0
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


D:\learn>gcc 980.c

D:\learn>gcc 980.c -pedantic -Wall
980.c: In function 'main':
980.c:9:10: warning: unused variable 'p3' [-Wunused-variable]
9 | int* p3 = (unsigned int)0; //
| ^~
980.c:8:10: warning: unused variable 'p2' [-Wunused-variable]
8 | int* p2 = (int)0; // ntintnt*nt
| ^~
980.c:7:10: warning: unused variable 'p1' [-Wunused-variable]
7 | int* p1 = 0; // K
| ^~

-Wallにするとunusedって警告でるけど型の話じゃないね
983デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 08:00:54.96ID:QxfbhGyV0
>>981
D:\learn>cl 980.c /W4
Microsoft(R) C/C++ Optimizing Compiler Version 19.27.29111 for x64
Copyright (C) Microsoft Corporation. All rights reserved.

980.c
980.c(8): warning C4047: '初期化中': 間接参照のレベルが 'int *' と 'int' で異なっています。
980.c(9): warning C4189: 'p3': ローカル変数が初期化されましたが、参照されていません
980.c(7): warning C4189: 'p1': ローカル変数が初期化されましたが、参照されていません
980.c(8): warning C4189: 'p2': ローカル変数が初期化されましたが、参照されていません
Microsoft (R) Incremental Linker Version 14.27.29111.0
Copyright (C) Microsoft Corporation. All rights reserved.

/out:980.exe
980.obj

参照されていませんという警告は型の話ではないのでここではスルー
型についての警告が出ている8行目とやらはこれ
> int* p2 = (int)0; // 明示的にint型にしてから渡すと「int型はint*型に変換できません」とエラー。ということは、この 0 はint型以外?

隣の9行目は警告されていない(しかも/W4で)
> int* p3 = (unsigned int)0; // これもエラーで無理。

おそらくclが警告しているのはXXX*とXXXでポインタの間接段数を間違えたんだろうということ
これなら9行目はXXX*とYYYで間接段数の問題ではないので黙っているという説明がつく
984デフォルトの名無しさん (ワッチョイ 6b05-b+lb)
2020/09/28(月) 08:46:00.83ID:E0ldxkXM0
0だけは特別にポインタにキャスト可能な仕様なんじゃよ
0がいい 0になろう
985デフォルトの名無しさん (ワッチョイ 1ee9-b+lb)
2020/09/28(月) 08:46:40.00ID:IwymMB/J0
>>980
0 の型は int だけど、空ポインタ定数 "null pointer constant" なので、すべてのポインタ型への暗黙変換が効く。
http://kikakurui.com/x3/X3010-2003-01.html#39
> 値0をもつ整数定数式又はその定数式を型void *にキャストした式を,空ポインタ定数(null pointer constant)と呼ぶ。

(int)0 になると空ポインタ定数ではなくなるので、ポインタに暗黙変換できなくなり、初期化・代入できなくなる。
986デフォルトの名無しさん (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:14:55.72ID:QIpyCS2B0
>>981
int* p = (long int)0; // NG
int* p = (unsigned int)0; // NG

long, unsigned は、int 型と、数値の範囲が異なる。
int 型しかキャストできないのでは?
987986 (ワッチョイ 4b2c-ozis)
2020/09/28(月) 09:19:20.10ID:QIpyCS2B0
0 アドレスの特別ルールか
988デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 09:26:33.33ID:QxfbhGyV0
0も厳格にはマジックナンバーだが
現実のシステムで0番地なんか普通の変数に使えなくていいから
理に適ってる
989デフォルトの名無しさん (ワッチョイ 1ee9-b+lb)
2020/09/28(月) 09:47:47.09ID:IwymMB/J0
アドレスは関係ないよ。
http://www.kouno.jp/home/c_faq/c5.html#5
990デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 10:10:46.96ID:BXhKM0Xn0
>>982
むつかしくてわからないのでひらがなでおねがいします


>>985
こんな感じで理解しておけばいいですか?

・整数定数式としての「0」とは、ソースコードに直接書かれた「0」で、評価されて返ってきた「(int)0 ⇒ 0」や「4 - 4 ⇒ 0」などの「0」は整数定数式とは言わない。
・同じ0でも、void*型の「0」や、整数定数式としての「0」だけを空ポインタ定数と呼び、空ポインタ定数は代入の際にポインタ型へ暗黙変換できる。
よって
int* p = (int)0; // 「(int)0」が評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 4-4; // 同様に、評価されて返ってきた「0」は整数定数式ではないので空ポインタ定数ではない。だから暗黙変換できずに代入無理。
int* p = 0; // 定数式としての「0」だから代入OK

型と値が一緒の、同じint型の「0」であっても、定数式と返り値とでは、それぞれの持ってる機能が違うということですか?
991デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 10:24:28.53ID:QxfbhGyV0
>>990
じーしーしーのばーじょんをかくにんしてから
おまえさんのこーどをくわせてみてるんだよ
せんげんだけしてつかってないへんすうがあるのをけいこくされているけど
それはおまえさんがきにしてるかたのもんだいじゃなさそうだねっていってるの
992デフォルトの名無しさん (ワッチョイ f793-raSa)
2020/09/28(月) 10:34:20.53ID:BXhKM0Xn0
>>991
ひらがなでわかりやすくせつめいしてくださったので
あたまのわるいわたしでもようやくわかりました
ありがとうございます
993デフォルトの名無しさん (エムゾネ FF32-0ian)
2020/09/28(月) 11:51:02.18ID:PXJ7xAyjF
NULL == 0 // true

ちなみに0は
994デフォルトの名無しさん (エムゾネ FF32-0ian)
2020/09/28(月) 11:51:34.94ID:PXJ7xAyjF
NULL == 0 // true

ちなみに0は8進数な
995デフォルトの名無しさん (ワントンキン MM42-S6Ic)
2020/09/28(月) 12:33:12.25ID:Iit1NWg4M
NULL == 0 // true

ちなみに0は8進数なんてことなく10進数なんてことなく16進数なんてこともない
996デフォルトの名無しさん (ワッチョイ 6bb7-b+lb)
2020/09/28(月) 13:16:35.37ID:QxfbhGyV0
いや8進数だよ
0xで始まったら16進数
0で始まったら8進数

こんな関数作って見たらわかるよ
syukudai("210") == 210
syukudai("110") == 110
syukudai("010") == 8
syukudai("0x10") == 16
997デフォルトの名無しさん (ワッチョイ 92a5-6ZJT)
2020/09/28(月) 13:27:42.04ID:zovFJ8Ky0
次スレは
998デフォルトの名無しさん (ブーイモ MM0e-Nkam)
2020/09/28(月) 14:23:39.09ID:qeCUoC3kM
みんなの心の中にいつまでもいるさ
999デフォルトの名無しさん (ワッチョイ 6b4e-gvfU)
2020/09/28(月) 14:46:36.10ID:MwxSOqxv0
質問いいですか?
1000デフォルトの名無しさん (ワントンキン MM42-S6Ic)
2020/09/28(月) 14:57:57.86ID:Iit1NWg4M
>>996
> 0で始まったら8進数

なら、敢えて数字リテラルで8進数のゼロを表すなら 00 だろう。

つか8未満の数「値」に8進数ってなんだYO!!
-curl
lud20241221054712nca
このスレへの固定リンク: http://5chb.net/r/tech/1589120427/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「C言語なら俺に聞け 155 YouTube動画>1本 ->画像>6枚 」を見た人も見ています:
C言語なら俺に聞け 150
C言語なら俺に聞け 140
【レーダー照射】韓国「日本の英語の発音が流暢でないから何言ってるのか聞き取れなかった」★15
【森友学園】辻元清美氏「3つの疑惑」報道で民進党が産経新聞に抗議文「流言飛語を疑惑扱い」「首相夫人とは事柄の本質異なる」★35 [無断転載禁止]
俺の彼女をイカせたくて同じサークルの金髪男にコツを聞いたら「彩花は一番奥のコリコリしたとこ攻めると良いぜ」って言われたんだけど
このまえ俺に好意もってそうな女の子に彼氏欲しい?って聞いたら……「今はいらない」って言われた
【籠池佳茂】私の妹の長女は菅野完から「言うことを聞かなければレイプする。セックスさせろ」と迫られて教育勅語をやめました
民進党・階猛「国民の多くは読売新聞の内容を容易には知り得ないから首相の発言は憲法違反」「憲法改正を語る資格はない」 [無断転載禁止]
俺「プロレス初めて見たけど面白いね〜」 友達「プロレスラー20名言ってみ、言えないニワカのくせに語んなや」 俺「」
敵「プログラミングはやりたいことを見つけてからやれ」俺「よし見つけたぞ!C言語始めてみよう!」
【レーダー照射】韓国「日本の英語の発音が流暢でないから何言ってるのか聞き取れなかった」★12
母親「言うこと聞かないなら置いてくよ!」幼女「やだあああ!!」俺「おっ!」
【森友学園】辻元清美氏「3つの疑惑」報道で民進党が産経新聞に抗議文「流言飛語を疑惑扱い」「首相夫人とは事柄の本質異なる」★26 [無断転載禁止]
【芸能】「彼は闘えないと思った…」妻が語る“昭和の大スター”石原裕次郎の素顔と遺言『俺が死んだら石原プロをたためよ』
【レーダー照射】韓国「日本の英語の発音が流暢でないから何言ってるのか聞き取れなかった」★10
英語教師「英語は文法が大事!SVO!」俺「何言ってんだコイツ、意味わかりゃいいだろ」←あれから10年経ち現実を知る [無断転載禁止]
パクりの語源って「朴李(パク・リ)」って言う朝鮮人の泥棒が語源ってネトウヨから聞いたけどマジ?
山崎拓「新聞を読む力と言うのは今の若い人には乏しいように思える。国語力が弱いんじゃないか」 ネット「情弱の典型」
なしてケモミンは「ボストモダン」嫌うの?今俺たちが生きてる世界はリオタールの言う「大きな物語の終焉」そのものなのに
日本語って差別主義者が作った言語だよな。例えば『日本』。これを音声で伝えると、耳の聞こえない障がい者には理解できない最低な言語 [無断転載禁止]
おまえらが実際に言われた中で一番エロい淫語は?俺は「目の前でピル飲むからエッチしてください...」 [無断転載禁止]
会社の四十路の先輩が「俺は若い時は走り屋だった」って自慢げに語りだしたから車種聞いたら軽自動車だったw
公には言えない俺のわだかまりを聞いてくれ
警察官の証言だけで有罪にされた俺が日本の司法の問題点について語るスレ
【レーダー照射】韓国「日本の英語の発音が流暢でないから何言ってるのか聞き取れなかった」★3
仮面ライダークウガを語れ【俺のファンだって言ってたくせに】 [無断転載禁止]
役所に電話相談したら名前聞かれて躊躇ったら「いや一応公的機関なんで別に個人情報出して損するとかないですよw」って言われたんだけど [無断転載禁止]©2ch.net
動画マニュアルを“多言語”に自動翻訳! 外国人労働者の育成コストも減るAIサービスの秘密を聞いた
自分が発音出来ない言語は聞き取れないは嘘!
【研究/言語】英語のL(Light)とR(Right)、聞き分け能力は瞳孔反応で分かる 黒目の大きさが無意識の認知状態を反映★2 [しじみ★]
梅沢富美男さん、生放送で差別用語を連発するも開き直る。「俺が言われた言葉なんだよ?言われた俺はどうすんだよ!」
藤田ニコルとセックスしたいなんて言ってるのはきっと俺だけだろうからにこるんを独占します
【悲報】つるの剛士「畑のパクチーが大量に盗まれて犯人捕まえたんだけど日本語わからないって言うんですよ…何人でしょうねw」
来月の安倍「あのさぁ、感染に気を付けて旅行しろって何回も俺言ったよね?なんで守らないの?経済的に死にたいの?」
【政治/読売】“ナベツネ”こと渡辺恒雄氏、言語不明瞭…巨人激励会で挨拶も取材陣聞き取れず 今年5月で89歳
【朝日新聞】 悪質をデマで事実を歪曲し世論操作するとは、言語道断
[AKITA931] 役所が業者に「PC幾らですか?」と聞くと業者が「15万円です!」と言っても言い値で買いそうだし
40代以上のお前らに聞くけど、「トラウマになった映画1位」と言えば絶対コレだろ、当ててやるよ
宇部が自分にしか理解できない意味不明な幻覚妄想言語障害ヘリクツをほざいたらあげるスレ11 [無断転載禁止]
樹木希林が言葉を詰まらせながら語った“9月1日”の悲劇とは?『news zero』に娘・内田也哉子が出演
【トランプ大統領】日本人記者の英語に「何を言っているかわからない」 記者の質問をさえぎり「シンゾーによろしく」→差別だ★5
【芸能】 今井美樹からももクロまで 活動歴35年の作詞家が語る「簡単には“大丈夫“も“頑張れ”も言いたくない」  [無断転載禁止]
◆-じっぷら伝言板 & みんなの気になるニュースや話題で語ろうぜ!-★102
千葉科学大学客員教授(獣医学)「獣医学部の新設など言語道断 むしろ今の16校から4校に集約すべき」 [無断転載禁止]©2ch.net
親が「うちは一族高卒だから進学させない」とか言って俺に受験させてくれなかったのに弟の大学受験を許したんだけど
普段「フェミw」とか言ってる奴も耳元で隠語囁かれながら乳首いじられて授乳手コキで情けなく射精するんだろ?素直になれよ
外国人「日本語はその時頭に浮かんだものをから順に言葉にしていくだけで通じる。とても学習しやすいフレンドリーな言語」
お前らに聞くのは間違ってると思うけど女性がデリヘル(♀)呼ぶのって別に文句言われたりしないよな [無断転載禁止]
【韓国遠征にて】佐藤優樹「ねぇ、あの人何を言ってるの?」野中美希「だから、私は帰国子女ですけど、韓国語は分からないんですってば」 [無断転載禁止]
キャンプの事なら俺に聞け! [無断転載禁止]
何でも横文字にするなって言う人がいるけど、日本語に訳すと逆にニュアンスが失われるから横文字カタカナのままにせざるを得ない場合って
ネットでたまに見かける『日本語のはずなのに言ってることが一切わからない人』の魅力 彼らは現実で会ったらどんな感じなんだ?
日本語に近い言語がないらしいけど日本語はどこから来たの??
ンゴンゴ言ってるだけでJ民認定とかお前等バカ過ぎだろwwwじゃあ日本人が米語使って話してたらお前等の中ではアメリカ人になるのか? [無断転載禁止]
言語ごとに文法(語順)が違うのって何でなんだ?単語はともかく、語順って時代が経っても変わらない気がするんだが
世界から隔絶したマイナー言語しか扱えない国民が大多数を占めると言うのは為政者にとって都合の良いことだな…
宇部が自分にしか理解できない意味不明な幻覚妄想言語障害ヘリクツをほざいたらあげるスレ9 [無断転載禁止]
【社会】 共通言語が手話のカフェ「サイニングストア」で働く女性と話して、ぼくのなかの“障害者への偏見”に気づいた。 [朝一から閉店までφ★]
お前ら率直に聞くけど女からイケメンとか格好いいとか言われたり、告白されたけいけんある?
【米国】白人女性「韓国語は気持ち悪いからアメリカで話さないでほしい」 スタバで韓国人留学生に発言
杉田水脈の元盟友が考察「問題の本質はLGBTを語った事ではなく比例議員なのに言論の自由を行使したこと」「切り取られ攻撃された」
日本語ラップの重鎮・Kダブシャインが星野源に苦言「ちゃんと歌で政権批判しないから、こういう利用のされ方するんだよ。」
20代外国籍女性、背後から男に刺される 「同じ言語を話す、面識ない男」 …新潟市中央区
山口二郎教授「統一教会の信者か明らかにせよとか、執筆媒体から特定の教団に所属と決めつけるのは言語道断の人権侵害」
韓国人、正論 「日本語しか話せない在日コリアンに「嫌なら国に帰れ」とか気安く言うなよ」
【朝日新聞】天皇批判発言、韓国議長が釈明「真意伝わっていない」 菅義偉官房長官「コメントする気にもならない」[3/27]
15:47:12 up 9 days, 2:11, 1 user, load average: 8.66, 8.91, 9.47

in 2.2511849403381 sec @0.054581165313721@0b7 on 122105