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

C言語なら俺に聞け 153 YouTube動画>7本 ->画像>4枚


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

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

1デフォルトの名無しさん (ワッチョイ 5fba-LL4R)
2019/08/17(土) 23:02:42.00ID:tN5mSQYg0
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/
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
※前スレ
C言語なら俺に聞け 152
http://2chb.net/r/tech/1560763630/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-XbXL)
2019/08/18(日) 01:45:05.03ID:f2ZPM7Xhd
乙。くるしうない。
3デフォルトの名無しさん (ワッチョイ 132c-BF++)
2019/08/18(日) 03:38:02.60ID:26pp6bRY0
仮想アセンブラは、元々、日本の情報処理資格試験用に、CASL2 が作られた。
個別のCPU 命令では、試験にふさわしくないから、抽象化した命令が必要だった

でも、世界的には流行らなかった

それで、学生が作った、LLVM に、Apple が飛びついた
4デフォルトの名無しさん (ワッチョイ 13a5-1WPq)
2019/08/18(日) 09:39:05.87ID:S9bN8HAf0
実像を見てない試験で社会から乖離してるな
バkの集団なんだろうか?
それともz80の問題だしたらライセンス料でも払わないといけないのか?
カネに掛けてはとかくケチな貧乏人が思い付きそうな小手先だ
至るところで独自規格で無意味の羅列、全く学習にならず、受けるだけムダな試験が練り上げられる
5デフォルトの名無しさん (ワッチョイ 39f6-g2bq)
2019/08/18(日) 09:57:01.01ID:OvlvScl60
試験用のアセンブラは、仕様を公開せずに
試験問題の中で初見にすればいい
それで対応力を試すようにすれば
いくらか意味のある試験になる
6デフォルトの名無しさん (ラクッペ MMa5-66q6)
2019/08/18(日) 10:09:11.56ID:/GvnB8qbM
以前に実施されていたマイコン応用システム開発技術者試験のアセンブラ問題は8080, Z80, 6800からの選択だった
現在の情報処理試験エンベデッドシステムの前身となった資格試験
7デフォルトの名無しさん (ワッチョイ 13a5-1WPq)
2019/08/18(日) 10:17:41.38ID:S9bN8HAf0
実際に使えないものを教えられてるのは英語と同じだな
CASLやっても機械語の練習にならない

「教育用」にまで形骸化すると使い物にならない、現実と実用から乖離する、ファンタジーになる、
これが「教育用」の弊害だ
PASCAL不人気の原因もここら辺にあるんじゃねえか?
IT界隈は教育用と実用の間で揺れてる
8デフォルトの名無しさん (ワッチョイ 8bf2-Zpsd)
2019/08/18(日) 12:10:38.91ID:RmgmCswc0
>>2 先生 700行の数式パーサーまたHPに載せて下さい!
9デフォルトの名無しさん (ワッチョイ d144-9R4q)
2019/08/18(日) 13:54:54.01ID:NDt9ShII0
ハゲタマゴどこ行った
10デフォルトの名無しさん (ワッチョイ d901-KVZO)
2019/08/19(月) 00:21:34.86ID:IzREAmBO0
生理がこないんですけど
どうしたらいいですか?
11デフォルトの名無しさん (ワッチョイ b9f2-oami)
2019/08/19(月) 01:35:14.42ID:HWxct0dM0
>>10
D
12デフォルトの名無しさん (ワッチョイ 5995-dCD9)
2019/08/19(月) 02:31:19.64ID:WV8MsfnG0
コンパイルもリンクも正常に動いているようだぞ
生まれたのがバグじゃなくて良かったな ha ha ha
13入門 (ワッチョイ d901-QMAU)
2019/08/19(月) 07:50:31.64ID:AfRfI86I0
http://program-lecture.info/c_structure5.html

ここのサイトを見ながら学習しているのですがこのshowStatus関数では何故int配列を
int型の仮引数で受け取れてるのでしょうか?配列は配列かポインタでしか受け取れないと思ってたんですが
その認識は間違ってますか
よろしくお願い致します。
14デフォルトの名無しさん (ワッチョイ 13ad-qB3k)
2019/08/19(月) 08:28:31.64ID:kSnvMIS70
>>13
showStatus()はint型でもint型配列でもなくcharacter型を受け取ってるようだが?
15デフォルトの名無しさん (ワッチョイ 8b69-LL4R)
2019/08/19(月) 09:48:04.61ID:O1nZQbpw0
showStasus() の引数は struct person 型の実体を受けてる

main では
 struct person 型の配列を用意 party[]
 配列の各要素 party[0], party[1] のぞれぞれについて showStatus() を呼んでいる

本質的には
 void foo(int arg);
 int main() {
  int array[2];
  foo(array[0]);
  foo(array[1]);
  return 0;
 }
これと同じ
16入門 (ワッチョイ 4901-QMAU)
2019/08/19(月) 17:57:43.49ID:7obxXURV0
>>15
理解出来ました。ありがとうございます( ;∀;)
17蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 4901-n+xS)
2019/08/19(月) 20:10:40.78ID:GYeBbzEk0
>>8
あのコードは今となっては時代遅れだ。意味がない。
18デフォルトの名無しさん (ワッチョイ 09a3-m73o)
2019/08/19(月) 20:19:09.86ID:PrhOfqin0
先生書き直さないんですか?w
19蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 4901-n+xS)
2019/08/19(月) 20:20:07.30ID:GYeBbzEk0
>>10
産婦人科へGo!

https://www.mylohas.net/2018/08/173369menstruation.html
20デフォルトの名無しさん (アウアウカー Sa5d-KcV4)
2019/08/24(土) 22:48:02.26ID:UVaZe+22a
下のコードの部分を実行すると、最後の行だけ2回表示されます。
理由はなぜでしょうか?また、最後も1回にするにはどう変更したら良いでしょうか?
よろしくお願いします。

http://codepad.org/WCL1vHLd
21デフォルトの名無しさん (ラクッペ MM69-RTXP)
2019/08/24(土) 23:20:14.88ID:xKwct0SAM
>>20
if ( !fgets(buf, sizeof(buf), fp) ) break;
2220 (ワッチョイ f125-KcV4)
2019/08/25(日) 00:34:55.25ID:9+tsViui0
>>21
サンクス!

While 行と fgets 行の間にその行を入れたら1回になりました。
修正はこれで良いのでしょうか?
2320 (ワッチョイ f125-KcV4)
2019/08/25(日) 00:46:09.40ID:9+tsViui0
>>22 の修正だと最後の行以外にもだいぶ表示されなくなってました。
どうするのが正解なのでしょうか?
24デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/25(日) 00:52:09.44ID:uvOm2rq20
良いのか?って聞かれると
色々言いたくなる奴が大勢出てきそう
25デフォルトの名無しさん (ワッチョイ d663-P0k6)
2019/08/25(日) 01:04:15.99ID:uvOm2rq20
>>23
//while ( !feof(fp) ) {
while (fgets(buf, sizeof(buf), fp)!=NULL){
//fgets(buf, sizeof(buf), fp);

こんなんでどうか
2620 (ワッチョイ f125-KcV4)
2019/08/25(日) 03:58:18.71ID:9+tsViui0
>>25 うまくいきました! Thanks!
やっぱり俺に訊けスレですね。ここの人達はすごい。

if ( (fp = popen(cmdline,"r")) == NULL ) {
perror ("can not exec commad");
}
while (fgets(buf, sizeof(buf), fp)!=NULL){
printf("%s", buf);
}
pclose(fp);

最終的にこうなりなした。助かりました。
27デフォルトの名無しさん (ワッチョイ 7a2c-3Uq+)
2019/08/25(日) 04:09:39.00ID:SpCWKyo10
Ruby では、Windows の、powershell, clip コマンドも呼べる。
UTF-8, CP932 の文字コード変換もできる

クリップボード内の複数行文字列の、各行の先頭・末尾から、
連続する空白類を除去して、クリップボードに入れる

str = `powershell Get-Clipboard`
str.encode! Encoding::UTF_8, Encoding::CP932 # UTF_8 へ変換

ary = str.each_line.map( &:strip ) # 連続する空白類を除去する

IO.popen( 'clip', 'w:cp932' ) do | clip | # CP932 へ戻す
clip.print( ary.join "\n" )
end
28デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/12(木) 14:34:32.33ID:PzZxK66KM
defineマクロで以下をやりたいです。

struct my{
int d0 =0;
int d1 =0;
int d2 =0;
int d3 =0;
int d4 =0;
}:

struct my val;

val[0:2] = (1, 1, 1);

と入力した時にvalのdata0〜data2に1が入るようなマクロはどう書けばいいですか?
29デフォルトの名無しさん (ワッチョイ ff2f-lH3V)
2019/09/12(木) 18:39:59.73ID:7fKDA9wF0
__VA_ARGS__ つこて2段呼び出しだな
qiita.com/saltheads/items/e1b0ab54d3d6029c9593
30デフォルトの名無しさん (ワッチョイ 9f68-Ivwm)
2019/09/15(日) 10:20:29.94ID:Y/GLm+KZ0
>>29
ありがとうございます。
リンクを参考に、可変引数にするマクロまでは出来ました。(作った関数が間違えていたらすみません。)

struct my def2(struct my val, int s, int e, int d1, int d2){
int *p = val.d0;
*(p+s) = d1:
*(p+e) = d2;
return val;
}

/*def3省略*/

#define GET_MACRO(_1,_2,_3,NAME,...) NAME
#define DEF(val,s,e,...) GET_MACRO(__VA_ARGS__, def3, def2)(val,s,e,__VA_ARGS__)

ここから、表記を変える方法が分かりません。
下のようなことをしたいのですが、このように書くとコンパイルエラーになりました。
どう書けばいいでしょうか。

#define VAL[A:B]=(...) DEF(VAL,A,B,__VA_ARGS__)
31デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 12:30:40.49ID:58rKn0L90
マクロ使わずにこれで十分だろ。

typedef struct my;

val = (my){1,1,1};
val = (my){1,1,1,1};

以下のようにはできるけど、
マクロの多用は誰もソースを読みたくなくなるから避けたほうがいいよ

#define SET(v,...) v=(struct my){__VA_ARGS__}
SET(val, 1, 1, 1)
32デフォルトの名無しさん (ワッチョイ 9f68-Ivwm)
2019/09/15(日) 13:05:57.26ID:Y/GLm+KZ0
>>31
すいません、説明不足でした。
どうしてマクロかと言いますと、3つのデータを入れたい場所が0〜2だけではなく5〜7や2〜4の場合もあるからです。
33デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 13:41:31.71ID:58rKn0L90
#define SET(x,s,e,...) memcpy(((int*)&val)+s,&(int[]){__VA_ARGS__},sizeof(int)*(e-s))

SET(val, 1, 3, 1, 1)
SET(val, 1, 4, 1, 1, 1)

部下がこんなコード書いてきたら突っ返すわ
34デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/15(日) 15:47:59.75ID:v7T7Pyv90
ID:Y/GLm+KZ0 が上司だったらと想定してみよう。
35デフォルトの名無しさん (ワッチョイ ff12-k1Ft)
2019/09/15(日) 15:59:14.90ID:58rKn0L90
自分の考えが浅はかでした。申し訳ありません
36デフォルトの名無しさん (ワッチョイ ff7c-6eqr)
2019/09/17(火) 11:43:21.23ID:tz0JLczQ0
>>34
背中を撃たれてしまうのでは・・・?
37デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 13:01:08.68ID:pZqZMIzxM
うーん、どうにかして上のように[]を使って書き換えることは出来ないのですかね。
ちなみに下のようにして全パターン定義しようとしたらエラーでした。何故でしょうか。

#define val[0:2]=(...) DEF(val,0,2,__VA_ARGS__)
38デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/17(火) 14:46:00.52ID:nfIIVgp70
マクロ諦めてインライン関数にしたら?
39デフォルトの名無しさん (アウアウウー Sa63-ErpI)
2019/09/17(火) 19:09:34.89ID:g1BlUkdva
>>37
なぜって、#defineを使用するための構文を完全に無視してるからだよ。こちらが思ったことを都合良く解釈してくれるわけでなく、構文通りの単純な置換をしてくれるだけだよ。
一度ちゃんと調べておいた方がいい。
40デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 19:57:33.48ID:pZqZMIzxM
>>39
なるほどです。
では、[]や:を利用して独自の構文を定義するのはC言語において不可能、ということですか?
41デフォルトの名無しさん (アウアウウー Sa63-ErpI)
2019/09/17(火) 20:37:25.67ID:g1BlUkdva
>>40
不可能。やるなら自前でプリプロセサでも書けばいいが、そんなことするくらいなら、ソース上に書くのではなく独自のデータファイルとそれを読み込んでデータを初期化するような処理でも作れば?
42デフォルトの名無しさん (アウアウクー MM73-Ivwm)
2019/09/17(火) 20:47:01.62ID:pZqZMIzxM
>>41
ありがとうございます。
最終的な目標は、Cを他言語ライクな記述でコーディングすることなので、プリプロセッサについて調べてみます。
43デフォルトの名無しさん (アウアウウー Sa63-0qvw)
2019/09/17(火) 22:44:02.30ID:WDh8MszDa
新言語作った方が良さそうな。
初期のC++みたいにC言語へのコンバータとして作っちゃえば楽だと思う。Cと同じで良い部分はほとんど素通しで行けるし。
44デフォルトの名無しさん (ワッチョイ 7f79-6eqr)
2019/09/18(水) 03:52:29.58ID:YwguJHoc0
そこまでしてCに拘る意味がわからない
45デフォルトの名無しさん (ワッチョイ 9f01-rDRx)
2019/09/18(水) 05:50:30.71ID:A+b/Im8h0
あの変態的にC言語には見えないObjective CでさえほとんどプリプロセッサでCに変換してからコンパイルしてたと聞くので、やろうと思えばできるんだろうね。
46デフォルトの名無しさん (ワッチョイ ff8c-e0wG)
2019/09/18(水) 07:02:57.91ID:ik5RQtCe0
yaccとlexを使えばできるだろう。たぶん
47デフォルトの名無しさん (ブーイモ MM9f-+9C/)
2019/09/18(水) 08:32:22.55ID:cLmp+ocZM
独自言語を開発したときなんかはとりあえずCに変換するというのはわりとある話。
コード生成とか最適化とか考えずに済むから。

昔、独自じゃないけど、とある言語からCへのコンバータ作ったよ。
楽しかった。
48デフォルトの名無しさん (ワッチョイ 1fd2-bRiQ)
2019/09/18(水) 08:40:59.31ID:vdXxwq0s0
コンパイル前にソースを別のソフトで変換、置き換えさせて・・・
49デフォルトの名無しさん (ワッチョイ 9ff2-VIbU)
2019/09/18(水) 09:00:45.02ID:qgVAc8a30
そしてCにもどるネズミの嫁入り
50デフォルトの名無しさん (ワッチョイ 7fa5-ZFGe)
2019/09/18(水) 12:47:21.47ID:1Vhu13ZT0
BNFとyaccのお勉強から
51デフォルトの名無しさん (アウアウクー MM11-bPqq)
2019/09/19(木) 15:34:03.81ID:yCvdPLl+M
#define ARR_NAME(n) arr##n

int arr0 [] = {0,0,0};
int arr1 [] = {1,1,1};

int* select_arr(int i){
return ARR_NAME(i);
}

これはどうしてコンパイルエラーになりますか?
ちなみにreturn ARR_NAME(0)だと正しく動きます。
52デフォルトの名無しさん (ワッチョイ 51f6-ACnl)
2019/09/19(木) 16:38:05.33ID:1k0/HGmS0
タイミングの問題だ
#defineはコンパイル前に解釈されるが
関数仮引数の値は実行時に渡される

実行時とはコンパイル〜リンクまで全て終わった後の話だ
だから関数仮引数の値を#defineで置き換えることができない
53さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-en/k)
2019/09/19(木) 17:34:18.54ID:fzYUHnaEd
arriという変数はない。プリプロセッサでは変数の中身までは見られない。
54デフォルトの名無しさん (アウアウクー MM11-bPqq)
2019/09/19(木) 18:13:33.75ID:yCvdPLl+M
分かりやすかったです。ありがとう。
この機能の代替として良き方法はありますか?配列のdimを増やすしかないですか?
55さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd22-en/k)
2019/09/19(木) 18:22:24.66ID:fzYUHnaEd
次元を増やすのがベストだろう。
56デフォルトの名無しさん (ワッチョイ 6e63-Ms+D)
2019/09/19(木) 18:23:38.47ID:QG4rugRZ0
配列変数名はコンパイル時には分かっているのだから
その配列のアドレスを格納したポインタ配列を用意してやる
57デフォルトの名無しさん (ワッチョイ 6101-o1nO)
2019/09/19(木) 18:24:58.88ID:Hv2f/JNH0
>>55
これに1票。
58デフォルトの名無しさん (ワッチョイ 0dd2-jgJV)
2019/09/20(金) 15:15:19.52ID:X5/vL2CD0
                            __、
                iー'゙゙゙゙''''ー-,/^´  ゙';
                |      ゙ゝ....‐  .}
                !           |,
                   i____________......r'".'''゙ヽ  . ..,,、
                ,,. -/        `'ー  |      .' 、
             ,..-'"  l゙          __.. -''′     ./
        . ,/     .`''''〜- ....---''''"゛        ,/
       /.,,                           ,,..r'"
         `''ー、,、                 _,,,-'"  `!、
               /'r‐、          ,/´ /゙゙',    ヽ
            / レ'゙ ´゙リ´ . `^^゙゙゙゙゙゙厂j  .! │    . l
           /  |  .l.      丿/ / . /      !
            l  !  .,,....--ー'''''''″ /  .| (、     . !
         _  .ィ‐¨゙゙'广゛ ......    ./  ,ノ.l.  `'ィ ..,,_/
     ..-‐'"゛  'l_゙'ーノ`' ..........,,_ .,, -"  / │   .!   ゙''''-.
   .i''i       ヽ、          /  .!    !
   ,)イ      : ..,,,,,>u;;;;,、.__ _,,,.. /    |    "
  / . 、          !  .`             |
     !,                     ,!
     ."                        ゙
59デフォルトの名無しさん (ブーイモ MM22-RBPn)
2019/09/20(金) 17:51:25.98ID:/93Uxf6sM
それは増やさなくていいから
60デフォルトの名無しさん (ワッチョイ 02ad-9GzD)
2019/09/23(月) 14:43:33.00ID:995jKG080
グローバル変数を宣言する時、ヘッダファイルでextern int hogehoge;ってするよね。
*.cからヘッダファイルをincludeすると、
extern int hogehoge;を毎回書いたのと同じ状態になるの?
61デフォルトの名無しさん (ワッチョイ 4563-wC8D)
2019/09/23(月) 14:47:57.02ID:LA+tlTim0
そうだよ
includeはファイルをそのまま展開するだけ
62◆QZaw55cn4c (ワッチョイ e247-TpwJ)
2019/09/23(月) 15:58:05.13ID:ZLX7TvLd0
>>60
被参照側(メイン)に int hogehoge と書く
参照側(サブ)には extern int hogehoge と書く

これが基本です、*.h を使うのなら

*.h に extern int hogehoge と書く
被参照側(メイン)に int hogehoge と書き、*.h をインクルード…@
参照側(サブ)は *.h をインクルード
@でヘッダと実体に矛盾がないかチェックします
63デフォルトの名無しさん (ワッチョイ 02ad-9GzD)
2019/09/23(月) 21:19:08.91ID:995jKG080
>>61-62
ありがとうございました
64デフォルトの名無しさん (アウアウウー Sa8b-dyKo)
2019/09/29(日) 22:13:04.83ID:wBLVWLTJa
お前がC言語を 使う前に
言っておきたい 事がある
かなりきびしい話もするが
俺の本音を 聴いておけ
初期化前の変数を 使ってはいけない
gets()関数も 使ってはいけない
文字列の長さと 配列サイズは別物だ
使い終わったバッファは ゼロクリアしろ
できる範囲じゃなくて 全部やって

https://twitter.com/satoru_takeuchi/status/1176429522687676416?s=03
https://twitter.com/5chan_nel (5ch newer account)
65デフォルトの名無しさん (ドコグロ MM7b-Gn+r)
2019/09/30(月) 07:29:14.67ID:II5MOx76M
>>64
> 使い終わったバッファは ゼロクリアしろ
これは要らんやろ
66デフォルトの名無しさん (ワッチョイ e77c-Sxlc)
2019/09/30(月) 08:11:22.10ID:gJLA2fQe0
パスワードやらなんやらの機密情報を保存したバッファは解放前にゼロクリアしようねという話です。
任意のバッファという意味ではありません。失礼しました
67デフォルトの名無しさん (スップ Sd7f-+ATs)
2019/09/30(月) 08:13:21.71ID:VG7pOpzld
物凄く初歩的な質問で申し訳ないのですが
1%5のような余剰計算をした場合解は5になるのでしょうか0になるのでしょうか
68デフォルトの名無しさん (スップ Sd7f-+ATs)
2019/09/30(月) 08:15:49.83ID:VG7pOpzld
すみません自己解決しました
69デフォルトの名無しさん (ドコグロ MM7b-Gn+r)
2019/09/30(月) 08:18:14.42ID:II5MOx76M
それC言語固有の話じゃないし個々にやるべきかプロセス毎にやるべきかとかのポリシーもあるし
70デフォルトの名無しさん (アウアウウー Sa8b-dyKo)
2019/09/30(月) 09:14:54.65ID:eZfyppwla
>>66
元のツイートした本人か。
ここ見に来ているとは思わなかった。
71デフォルトの名無しさん (ワッチョイ 5dda-0RA9)
2019/10/04(金) 06:41:48.31ID:UVSgb2bf0
ゼロクリアだとそこだけ異様にキレイなので逆に重要な値が入るものと察知される
乱数値でクリアすべき
72デフォルトの名無しさん (ワッチョイ b67c-G1PU)
2019/10/04(金) 08:54:32.98ID:iKrL2UhC0
>>71
すごいコストがかかるよねそれ・・・
73デフォルトの名無しさん (ワッチョイ 39d2-jw9j)
2019/10/04(金) 09:53:27.82ID:gjBxAXtl0
一々乱数計算しなくても数パターン乱数表つくってメモリコピーでもいいんじゃね?
74デフォルトの名無しさん (アークセー Sxbd-BjtM)
2019/10/04(金) 10:40:51.28ID:0WBkPtDcx
そもそもゼロクリアされてるbss領域なんて重要なもの以外にも大量に存在してるので攻撃者がピンポイントで判断することなどまず不可能。
逆に綺麗すぎる乱数のほうが目立つ。
75デフォルトの名無しさん (ドコグロ MMb1-XtwS)
2019/10/04(金) 11:02:52.42ID:uYF9K7e8M
そこだけにするからバレると言うなら全部ゼロクリアすればいいってことでしょ

> 使い終わったバッファは ゼロクリアしろ
> できる範囲じゃなくて 全部やって
76デフォルトの名無しさん (ワッチョイ 6aa5-SLA8)
2019/10/04(金) 11:23:25.74ID:rAj4fuhv0
今の流行りは不変プログラミング
スコープが短い云々ではなく使い捨て
再利用なんてしない
77デフォルトの名無しさん (ワッチョイ 6a18-M8t1)
2019/10/04(金) 11:28:53.13ID:MVQV/kgg0
アメリカ国防省のDoD5200.28-Mとかね
78デフォルトの名無しさん (ワッチョイ 8d88-LHep)
2019/10/04(金) 11:42:07.63ID:TDKY2TUM0
HDDだと少数回のゼロクリアじゃデータ復旧される可能性が残るけどメモリだったらその心配はないのかね?
79デフォルトの名無しさん (アークセー Sxbd-BjtM)
2019/10/04(金) 11:48:30.26ID:0WBkPtDcx
>>78
DRAMはリフレッシュがあるので原理的に不可能な気がする。
SRAMもフリップフロップなら不可能な気がする。
80デフォルトの名無しさん (アウアウウー Sa21-8Spd)
2019/10/04(金) 14:20:51.26ID:hcjI0QEWa
スワップされてディスクに書き込まれたら終わりなのでスワップされないようにする必要がある。
81デフォルトの名無しさん (ワッチョイ 8d88-LHep)
2019/10/04(金) 14:34:25.76ID:TDKY2TUM0
windowsの細かな動きがわからんけどスリープとかでメモリ内容を全部ディスクに保存する動きしない?
するなら言語レベルではどう頑張ってもディスクにデータを書き込まずにスルーする術なんてないんじゃなかろうか?
ということは漏洩防止目的でバッファをゼロクリアする意味は無い?
windows以外は知らん
82デフォルトの名無しさん (ワッチョイ 39d2-jw9j)
2019/10/04(金) 15:03:33.90ID:gjBxAXtl0
スリープ処理って関数実行中でも起きるの?
メッセージ待ちとかで起こると思ってた。
83デフォルトの名無しさん (アークセー Sxbd-BjtM)
2019/10/04(金) 15:23:30.09ID:0WBkPtDcx
多分priemptされてたら実行状態でも普通にswap outされるだろうな。
84デフォルトの名無しさん (ドコグロ MMb1-XtwS)
2019/10/04(金) 15:25:19.34ID:uYF9K7e8M
スワップに書いてある内容がどのプロセスのものかをどうやって知るつもりなんだろう…
てかそんなのがわかる状況ならそもそもセキュリティうんぬん言ってもしょうがないと思う
85デフォルトの名無しさん (アウアウウー Sa21-8Spd)
2019/10/04(金) 15:35:25.79ID:hcjI0QEWa
Linuxにはmlock()がある。
https://linuxjm.osdn.jp/html/LDP_man-pages/man2/mlock.2.html
多分他のOSにも似たようなのはある筈。
なければ高度なセキュリティが必要なプログラムは作れない。
86デフォルトの名無しさん (アウアウウー Sa21-8Spd)
2019/10/04(金) 15:43:12.94ID:hcjI0QEWa
サスペンドでメモリ内容が全てディスクに書き込まれるような場合は暗号化サスペンドイメージを使うように予め設定しておくしかないようだ。(もはや言語の問題ではない。OSの問題)。
87デフォルトの名無しさん (ワッチョイ 8d88-LHep)
2019/10/04(金) 15:53:58.62ID:TDKY2TUM0
最終的にはOSやらハードウェアファームやらのレベルの話に行き着くんで上位レイヤーでの完全対応は無理
ならば他アプリが自アプリのバッファにアクセスできないよう下位レイヤーが保証してるならバッファクリアは不要ということになる?
そんなレベルで心配が必要なことは個人的に触ることは無いと思うけど
88デフォルトの名無しさん (アウアウクー MM7d-Pgoj)
2019/10/04(金) 17:34:20.04ID:SD7r35lfM
関数ポインタの書式と宣言方法がわからぬ(´・ω・`)
だれか助けてクレメンス
89デフォルトの名無しさん (ブーイモ MMc9-Lreg)
2019/10/04(金) 18:02:32.55ID:TP3p64JiM
ここで講義始めるわけに行かないんだからもっとspecificに頼むよ
90デフォルトの名無しさん (ワッチョイ 2ac5-G1PU)
2019/10/05(土) 01:05:45.82ID:JlWvx+CH0
Makefileなどに書かれているCCって「C Compiler」の略でしょうか?
91デフォルトの名無しさん (ワッチョイ f1a5-M8t1)
2019/10/05(土) 08:03:44.94ID:9T2eUTn80
UNIXのccコマンドじゃね?
92デフォルトの名無しさん (ワッチョイ 2ac5-G1PU)
2019/10/05(土) 20:19:21.97ID:JlWvx+CH0
http://www2.scphys.kyoto-u.ac.jp/BIRDnet/manuals/A1_BIRDintro/cc1.html
C コンパイラーっぽいですね
93デフォルトの名無しさん (ワッチョイ b67c-G1PU)
2019/10/07(月) 09:08:10.49ID:wNNRR3l10
ピザ好きな不老不死の女の子かと思った
94デフォルトの名無しさん (スップ Sdea-s2a/)
2019/10/07(月) 19:40:47.02ID:Xs+XlBV4d
250億分の1のドム?
95デフォルトの名無しさん (ワッチョイ 7d01-BjtM)
2019/10/08(火) 06:14:41.38ID:T9JnCGiw0
Card Captor
96デフォルトの名無しさん (ワッチョイ 2ac5-G1PU)
2019/10/08(火) 07:56:55.95ID:/Tt7z8U00
さくらちゃん!
97デフォルトの名無しさん (アウアウウー Sa21-8Spd)
2019/10/08(火) 10:23:23.04ID:UHIrT7RMa
Chupa Chups
98デフォルトの名無しさん (ワッチョイ 9fc5-NJTS)
2019/10/10(木) 14:01:00.49ID:at1yx75i0
このスレこんなに過疎ってたっけ
99デフォルトの名無しさん (アウアウウー Sa5b-DLKC)
2019/10/10(木) 20:53:57.73ID:f2z6TkRsa
まずは燃料投下する必要があるんじゃないかな。C言語はダメとかクソとか、あるいは引数にvoidなんて見たことないとか、そういったことを書けば火が付いて3スレぐらいあっという間に消費すると思うよ。
100デフォルトの名無しさん (ワッチョイ 9f02-NhWV)
2019/10/10(木) 21:22:58.67ID:uAIxYTc70
void君呼ばれてるよ〜
101デフォルトの名無しさん (ワッチョイ 9ff9-8cCB)
2019/10/10(木) 21:27:26.48ID:uUO69neG0
void君だと日下部を連想しちゃう
102デフォルトの名無しさん (ワッチョイ 9f79-NJTS)
2019/10/10(木) 23:54:41.04ID:a+kHg1ZD0
C言語がクソなのは誰の目にも明らかだから燃料にもならない

何を犠牲にしてでも最速を求めなければならないとか
今時キロバイト単位のメモリしか載ってないとかで渋々使わざるを得ないだけ
103◆QZaw55cn4c (ワッチョイ b798-SdOU)
2019/10/11(金) 00:09:31.72ID:pVz4+WpI0
>>102
プログラムに関係する問題を人に伝えたく、かつ、言語固有の事情をできるだけ排除したいときにあえて c で表現することはあります、普段書きはすでに c++ ではあるのですが
http://2chb.net/r/tech/1551247748/442-443
104デフォルトの名無しさん (スップ Sdbf-xp8T)
2019/10/11(金) 07:30:31.94ID:nZkXsNOYd
だな
105デフォルトの名無しさん (アークセー Sxcb-olh0)
2019/10/11(金) 07:53:34.25ID:3LFsZ0AAx
かと言ってC++にそんなにメリット感じないんだよなぁ。
106デフォルトの名無しさん (アウアウクー MMcb-mT29)
2019/10/11(金) 08:03:12.82ID:tJJSdY6IM
python最強!python最強!python最強!
107デフォルトの名無しさん (ワッチョイ ff63-NJTS)
2019/10/15(火) 23:35:16.76ID:j31F4ljf0
pythonスレ、寂れているぞ
108デフォルトの名無しさん (ワッチョイ 9779-NJTS)
2019/10/15(火) 23:36:55.58ID:41wob9vL0
Cスレより寂れてから出直してこい
109デフォルトの名無しさん (ワッチョイ d2c5-S3Tg)
2019/10/18(金) 13:14:43.91ID:fz6Ul+V20
あんなに活気のあったスレがこんなに寂れるとは
5chから人が減っているという噂は本当だったか・・・
110デフォルトの名無しさん (ワッチョイ c67c-S3Tg)
2019/10/18(金) 13:17:46.21ID:TRDqZrvk0
2chに戻れば盛況になると思うよ
111デフォルトの名無しさん (アウアウウー Sa43-n65Q)
2019/10/18(金) 13:50:16.30ID:Re5f6/3aa
誰かYouTuberになって布教活動すれば良いんじゃないか?
この際VTuberで美少女だけど実はおっさんがやってるってのでも良い。
112デフォルトの名無しさん (ワッチョイ d2c5-S3Tg)
2019/10/18(金) 14:13:00.14ID:fz6Ul+V20
名前はCちゃんだな
バストもCちゃん
113◆QZaw55cn4c (ワッチョイ b247-tNz9)
2019/10/18(金) 20:01:00.56ID:6mXxrgrB0
>>109
C 宿題スレも激しく活況だったのに、ね、…
114デフォルトの名無しさん (アウアウウー Sa43-n65Q)
2019/10/18(金) 22:18:29.15ID:Re5f6/3aa
そう言えば中国にもYouTubeみたいなのがあってYouTuberのようなのをやってる人も居るのだが、顔を若く変換するアプリ使って40代だか50代のおばちゃんが20代ぐらいに見せかけてやっていたってのがあったなあ。

そういうの使えばお前らのハゲもフサフサになるに違いない。
115デフォルトの名無しさん (ワッチョイ d2c5-S3Tg)
2019/10/21(月) 17:55:25.84ID:SxBFh1HX0
顔を変換するアプリと言えばアダルトサイトに芸能人の顔を合成したAVが上がってたな
見た感じ本物と区別付かないぐらい精巧だった
個人的にここ最近の技術革新では一番衝撃的だったな
116デフォルトの名無しさん (ワッチョイ 9f95-S3Tg)
2019/10/21(月) 20:28:50.85ID:niRnsl0k0
画角やライティングに異常なし?
117デフォルトの名無しさん (ワッチョイ 926f-iSkz)
2019/10/21(月) 21:24:45.66ID:Pn9LVi/O0
>>111
>>114
のらきゃっと + 顔バレあたりで現代に触れよう
118デフォルトの名無しさん (ワッチョイ de8c-U7Hu)
2019/10/22(火) 11:58:42.07ID:w6Pn7J3f0
printf("%*d", width, num);

printf("%2$*1$d", width, num);
がなぜ等価でですか?だいたい等価?正確に等価?
119デフォルトの名無しさん (ワッチョイ d2c5-S3Tg)
2019/10/22(火) 12:33:17.32ID:Cu6k19+70
>>116
異常なし
すごい自然な合成
120デフォルトの名無しさん (ワッチョイ c3b0-ecnW)
2019/10/24(木) 00:19:19.09ID:Wak+wQ5e0
ずばり日本人って利己的な奴ばっかだから会話から何まで発展しようがないんだな。
後はもう負の連鎖。
121デフォルトの名無しさん (ワッチョイ ffad-LHKE)
2019/10/24(木) 04:25:22.54ID:nZ5fKqYm0
おまえ利己的だな
122デフォルトの名無しさん (ワッチョイ ffc5-mjLV)
2019/10/24(木) 13:03:27.14ID:4BUO8cnl0
ワッチョイ取ったほうがいいんじゃないの?
なんでワッチョイ付けてるの?
123デフォルトの名無しさん (ラクッペ MMc7-KLnj)
2019/10/24(木) 13:13:49.39ID:rzYbrWLoM
人を寄せ付けないため
124デフォルトの名無しさん (アウアウウー Sa27-nFuE)
2019/10/24(木) 16:43:51.20ID:gElHX+jGa
荒らされることで活気を保つというのもまたナンだなあ
125デフォルトの名無しさん (ワッチョイ c3b0-ecnW)
2019/10/25(金) 06:37:52.18ID:2lz/0LgC0
本音だけど、何処の板もそうだけど、噛みついてくるのはすぐさま来るけど親身になって
答えてもそのまま逃げる奴ばっかだし、そりゃ人減るよ。
答える奴には聖人を求める癖に自分がカスすぎるじゃん。
126デフォルトの名無しさん (スップ Sd1f-oeya)
2019/10/25(金) 07:36:46.68ID:1flCt2Jcd
他人に対する期待が多すぎるやつは
いつも文句ばっかりぬかしてて
思い通りにならないと発狂する
127デフォルトの名無しさん (アウアウウー Sa27-nFuE)
2019/10/25(金) 12:45:36.00ID:f89Z34lqa
期待が大きいというか、依存だよね。
128デフォルトの名無しさん (アウアウクー MM47-I6j1)
2019/10/25(金) 18:54:11.10ID:1g0JfiSRM
依存じゃなくて利用だな
他人なんて自分がラクするための道具でしかないという
129デフォルトの名無しさん (アウアウウー Sa27-nFuE)
2019/10/25(金) 20:51:37.05ID:f89Z34lqa
道具に依存している
130デフォルトの名無しさん (アウアウクー MM47-I6j1)
2019/10/26(土) 12:46:18.79ID:EiwJrseOM
なくても困らない代わりはいくらでもあるものに対して依存しているとは言わない
131デフォルトの名無しさん (ワッチョイ b363-mjLV)
2019/10/26(土) 12:49:03.78ID:bOvK5kTL0
5ちゃんねる依存症
132デフォルトの名無しさん (ワッチョイ ffad-LHKE)
2019/10/26(土) 21:16:39.88ID:2eoY+VbT0
依存できなくなると怒るんだよ
133デフォルトの名無しさん (ワッチョイ 0b46-D8p/)
2019/11/05(火) 20:25:04.26ID:AZeD0bR10
$ ctags -R /usr/include/alsa
をしても、int snd_pcm_open(...); 等が tags に記載されない。
どうして? どうしたら?
134デフォルトの名無しさん (ワッチョイ 8b7b-iL8/)
2019/11/07(木) 06:31:27.14ID:+Fv/+mh50
>>133
ctags --c-kinds=+p -R /usr/include/alsa
でどうだろ。
見当つくだろうけど「Cのプロトタイプ宣言部分も出力に加える」の意。

どうして、の答えは「デフォルトではプロトタイプ宣言部は対象外だから」だね。
135デフォルトの名無しさん (ワッチョイ 6b01-DaD1)
2019/11/11(月) 23:11:25.01ID:W9timUKI0
構造体のメンバ変数に、関数のポインタ変数を入れて、クラスのメソッドのような感じで使ったりできると思うけど、そういう使い方って現実性あるかな?
136デフォルトの名無しさん (ワッチョイ 8b4f-DaD1)
2019/11/11(月) 23:22:53.41ID:zH1aWpOc0
そういうふうにCでOOPするのが昔流行った。
137デフォルトの名無しさん (ワッチョイ 9f01-lZUE)
2019/11/12(火) 00:07:22.48ID:FaYMVIJ40
>>135
Linuxとかで今でも使われまくり
https://elixir.bootlin.com/linux/latest/source/include/linux/fs.h#L1789
138デフォルトの名無しさん (ワッチョイ 4f7c-DaD1)
2019/11/12(火) 09:07:31.78ID:lfRZP5P70
>>135
デバイスドライバのたぐいは大体それのオンパレードだよね
139デフォルトの名無しさん (ワイーワ2 FF3f-tB+Q)
2019/11/12(火) 09:36:57.66ID:uG6HIbdYF
>>135
普通

>>137
便利だよね
140デフォルトの名無しさん (アウアウウー Sacf-aSoi)
2019/11/12(火) 11:31:00.10ID:H6DlknKxa
>>135
C++がCへのコンバータだった頃はクラスをそんな風に変換してたんじゃないかな。
今はコンパイラが内部的にやってるんだろうけど。
141デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/12(火) 19:07:08.23ID:4xumfLcka
組み込みプログラマになりたいんだけど入門書やった後は何したらいいの?
142デフォルトの名無しさん (ワイーワ2 FF3f-tB+Q)
2019/11/12(火) 19:10:21.84ID:I0vQskxnF
中学生なら高校逝け
高校生なら大学逝け
143デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/12(火) 19:20:12.48ID:4xumfLcka
社会人なら?
144デフォルトの名無しさん (ワイーワ2 FF3f-tB+Q)
2019/11/12(火) 19:24:17.50ID:I0vQskxnF
そんな質問の仕方で生きていけると思ってるのか?
自分で考えろ
145デフォルトの名無しさん (ワッチョイ ef8c-msxt)
2019/11/12(火) 19:26:00.59ID:D/uXBQyj0
LチカへGo
146デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/12(火) 19:29:46.05ID:4xumfLcka
>>144
サンキューポークピッツ
147デフォルトの名無しさん (ワッチョイ 9f74-AXNO)
2019/11/12(火) 20:32:17.44ID:mKGma2960
>>141
横井与次郎さんの本が愛読書だったな、俺っち
手垢で真っ黒ボロボロ
148デフォルトの名無しさん (ワッチョイ 9f74-AXNO)
2019/11/12(火) 20:34:21.51ID:mKGma2960
サルのようにアセンブラ書きまくってた
149デフォルトの名無しさん (アウアウウー Sacf-aSoi)
2019/11/12(火) 20:52:53.27ID:krWpkqwCa
組み込み用の何かを買ってきて何か作れば良いのでは?

まあしかしこの頃は小さい組み込み用のやつでもLinux動くのあるし、良い時代になったもんだな。
150デフォルトの名無しさん (ワッチョイ 8b01-zNuL)
2019/11/12(火) 20:59:56.71ID:hX4IVAaB0
>>141
PICとかハードを直接イジれるやつを隅から隅までイジれ。
逆にラズパイとかはお勧めできない。
151デフォルトの名無しさん (アウウィフ FFcf-SQ7J)
2019/11/13(水) 10:23:05.12ID:OceCV+VLF
スレチ

こちらへどうぞ
http://2chb.net/r/denki/1475932454/
152デフォルトの名無しさん (アウウィフ FFcf-SQ7J)
2019/11/13(水) 10:24:21.92ID:OceCV+VLF
こっちか
http://2chb.net/r/denki/1556619799/
153デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/13(水) 17:39:08.11ID:G8O1eV9/a
30日でできる!OS自作入門ってやつは組み込みの知識としては全く必要ない?
なんか楽しそうだからC言語の入門書終わったらやろうと思ってるんだけど
154デフォルトの名無しさん (オイコラミネオ MM7f-DJ9s)
2019/11/13(水) 18:01:06.50ID:IhNMqz4FM
>>153
あの本はCPUの知識ないと何をしてるか分からないまま終わると思う
だから知識が増えた実感も感動も少ない(経験談)
揃えるツールも多いし著者が用意した奴だし

個人的にオススメの勉強法は自分で考えたオリジナル言語をCのソースに変換することかな
文字列処理の知識で実現できてなおかつC言語に詳しくなれるし、他言語の構文を学ぶきっかけにもなる
155デフォルトの名無しさん (ワッチョイ cb88-4TTv)
2019/11/13(水) 18:01:38.54ID:3gCJP2hx0
楽しそうだと思うものをやるのが一番学習には向いてる
組み込みも幅は広くてOSがあったりなかったり様々
やって全く不要だったとはならんと思うよ
156デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/13(水) 18:17:24.08ID:G8O1eV9/a
Arduinoはダメ?
157デフォルトの名無しさん (ワッチョイ 2b63-4TTv)
2019/11/13(水) 18:56:19.16ID:cq8qXzOO0
何を持ってダメ?なのかがわからんから答えようがない
何使ったって楽しく勉強できるなら関係なくない?
勉強すれば次が見えることもある
158デフォルトの名無しさん (ワッチョイ 9fa5-sefN)
2019/11/13(水) 18:59:21.12ID:kE3A4AyF0
オームの法則からやった方がいいんじゃねえの
159デフォルトの名無しさん (アウアウウー Sacf-xE2t)
2019/11/13(水) 19:10:14.39ID:G8O1eV9/a
>>157
ラズパイはダメってレスがあるからさ。Arduinoもダメなのかな?と思ってさ。
とりあえずやってみるわサンキュー
>>158
なんで?
160デフォルトの名無しさん (ラクッペ MM0f-ChRG)
2019/11/13(水) 19:19:54.35ID:puH+izSFM
組み込みは扱うものの範囲がベラボーに広いからターゲットが決まってないないなら
予備知識なんてそれこそ有りとあらゆる事を学ばなきゃならなくて時間の無駄
いきなりやりたいことに手を付けるとか目的の会社に就職する算段するとかの方が現実的
161デフォルトの名無しさん (スプッッ Sdbf-DZxH)
2019/11/13(水) 19:24:06.56ID:Fqkv69gYd
興味あるところを片っ端からやればいいよ

最近の新人はまともにコーディングしたことがない人が多くて驚く
162◆QZaw55cn4c (ワッチョイ 1f47-eDwC)
2019/11/13(水) 20:14:16.53ID:ESFhNQze0
>>161
>興味あるところを片っ端からやればいいよ

至言ですね…
つまるところアドバイスできるとすれば、この言葉にまとまってしまいますね
163デフォルトの名無しさん (ワッチョイ ef9e-DaD1)
2019/11/13(水) 21:24:12.52ID:h+5DYY+D0
ラズパイでもArduinoでもPICでもブレッドボード用意してまずはLチカから
トランジスタや7セグをやって、スイッチからの入力などとれるようになったら
またそこで考える
164デフォルトの名無しさん (アウアウウー Sa45-coos)
2019/11/14(木) 03:35:32.04ID:YiNpU217a
>>154
この本アセンブリとC言語の勉強になったりしない?
165デフォルトの名無しさん (ワッチョイ 7e7c-iGNt)
2019/11/14(木) 09:19:52.63ID:J2fP3wLz0
>>154
式をコンパイルするところでだいたい挫折する
166デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/14(木) 11:24:43.32ID:Owl20mAsF
>>164
ならない

はじめて読む486の方が486倍マシ
167デフォルトの名無しさん (ワッチョイ e9aa-coos)
2019/11/14(木) 12:42:01.31ID:bgqE36PV0
じゃあやーめた
168デフォルトの名無しさん (スップ Sd02-lusp)
2019/11/14(木) 13:11:45.63ID:hMO8QTtJd
まずはLチカでオームの法則を押さえよう
次はhFEだ フォトトラとダーリントン
フォトカプラとHブリッジあたりまでできるようになれば
あとはどうにでも
169デフォルトの名無しさん (ワッチョイ 068c-ENPG)
2019/11/14(木) 13:13:53.45ID:HGG0mhgt0
リレーかちゃかちゃも捨てがたい。
170デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/14(木) 13:20:17.46ID:/NpdgKVAd
組み込みだろうが回路は回路の専門家が考える
ソフトの新人が回路に意見しても聞いてくれないよ
171デフォルトの名無しさん (ワッチョイ 7e7c-G967)
2019/11/14(木) 13:23:50.41ID:pX7h0rWU0
制御系の場合は、LTIシステム、Z変換など制御理論の基礎知識がないとそもそもプログラミングが出来ない
どの様にプログラムすれば良いのか迷い途方に暮れることになる
172デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/14(木) 13:26:39.57ID:/NpdgKVAd
そういうのは実際に使う場面になってから勉強すればいいよ
ソフトは範囲が広すぎてどうせ全て学ぶのは無理だから
173デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/14(木) 13:47:33.26ID:YSMwOav4a
そういえば抵抗のカラーコードって色弱の人とかには辛いんじゃないか?

と、今ごろ気づく。
174デフォルトの名無しさん (アークセー Sx11-PSUN)
2019/11/14(木) 14:24:10.71ID:tET/gf2zx
おじさんが若い頃は新人はPIOドライバを書くことから始めてたけど今じゃそれさえも最初からドライバやSDKで用意されてるものが多いしな。
組み込みソフト技術者を自称してる人でも最近じゃリセットエントリからSDRAM設定やスタック設定やセクション初期化とかmainがコールされるまでの部分を書ける人は少なくなってるね。
175デフォルトの名無しさん (スップ Sd02-lusp)
2019/11/14(木) 16:16:57.62ID:hMO8QTtJd
組み込み分野で、私はソフト屋でハードはわかりません、なんてぬかすやつはビルから投げ捨てろ
176デフォルトの名無しさん (ササクッテロル Sp11-pwu9)
2019/11/14(木) 17:44:17.32ID:KJEtP35mp
>>173
色弱で前までは気合で読んでたけど最近はスマホアプリとかで読んだりもする
177デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/14(木) 18:45:54.05ID:YSMwOav4a
なるほど。やはりそうか。
スマホアプリあってよかったな。
178デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/14(木) 18:51:25.20ID:wXs4N2j20
今時カラーコード?
179デフォルトの名無しさん (アウアウウー Sa45-coos)
2019/11/14(木) 19:41:22.93ID:YiNpU217a
ものづくりC言語塾とかいうプログラミングの勉強サイト見つけたんだけどわかりやすいのここ
180デフォルトの名無しさん (ワッチョイ 02a5-pb9v)
2019/11/14(木) 19:56:34.37ID:KjmBL3+S0
無駄なイメージ画像が矢鱈と多いね
チャッチャと本題に入ればいいのに

肝心のコードのフォントサイズ一回り小さくしてね?
逆だろ逆
181デフォルトの名無しさん (ワッチョイ 8279-iGNt)
2019/11/14(木) 21:05:18.98ID:mZpo/vPM0
分野的には制御&組み込みだが論理回路とかは初歩の初歩くらいしか分からんわ
別に組み込み屋を自称する気もないけど
182デフォルトの名無しさん (ワッチョイ 068c-ENPG)
2019/11/15(金) 00:45:20.33ID:r8gV+bPL0
建築土方で分ける方が良いかも。知らんけど
183デフォルトの名無しさん (ワッチョイ c27c-6iPJ)
2019/11/15(金) 00:59:59.43ID:YJCQuSug0
ポインタを返す関数の中身を他の変数にコピーしたいとき
int a;
a = *func();
みたいな事をしても良いんでしょうか?
コンパイルしたら動きましたが…
普通こういうことはしませんか?
184デフォルトの名無しさん (ワッチョイ 2e12-7Hrx)
2019/11/15(金) 01:54:01.65ID:GhKndF/D0
funcが返す値を開放する責任がないなら問題ない
185デフォルトの名無しさん (ワッチョイ c2c5-iGNt)
2019/11/15(金) 02:21:33.91ID:Re5Vtpoc0
>>183
これなにか使い道あるの?
186デフォルトの名無しさん (ワッチョイ c2c5-iGNt)
2019/11/15(金) 05:47:36.56ID:Re5Vtpoc0
ああ空目してたわスマソ
187デフォルトの名無しさん (スップ Sd02-lusp)
2019/11/15(金) 09:12:52.77ID:uuXKcbIGd
>>181
慢心せず謙虚でいるのはいいことだが
やる気のなさの言い訳にするやつに
同調はしないってことさ
188デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/15(金) 09:35:58.90ID:rGVJWIdvM
制御屋なら論理回路よりも伝達関数
189デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/15(金) 10:29:58.55ID:kGxI2dsUM
>>183
func() の作り方次第

int x = 123;
return &x;

とかやってたらダメ
190デフォルトの名無しさん (スップ Sd02-lusp)
2019/11/15(金) 11:04:39.89ID:uuXKcbIGd
>>188
なぜ、よりもと択一選択するんだ?
191デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/15(金) 11:25:31.01ID:rGVJWIdvM
極論すれば対象をモデル化して状態方程式をプログラムで逐次演算するアルゴリズムを実装するのが本来の制御系の組み込みソフト
論理回路のソフト処理への代替はコストダウンの一環で取り込むことはあってもあくまでオマケ
192デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/15(金) 11:37:39.91ID:qkK0C17la
>>178
抵抗って昔からカラーコードで抵抗値表してるのでは?今は変わったの?
193デフォルトの名無しさん (ワッチョイ 0261-bNU/)
2019/11/15(金) 11:43:07.73ID:bb6Q721I0
>>192
部品を小さくすると高速化できるので
チップ部品が増えたが、そこにはカラーコードは使われていないからでは。
194デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/15(金) 11:46:04.74ID:qkK0C17la
>>183
良いんだけどNULL返されたらおしまいなのでそのためにワンクッション入れるのが普通なのではないな。

実際 localtime() なんかはエラーの時にNULL返す事になってるしな。自分の所の変数にコピーする場合はまずポインタで受けてNULLでなければポインタの指してる先がコピーされるように書くよ。
195デフォルトの名無しさん (ワッチョイ 0d14-iGNt)
2019/11/15(金) 14:01:09.16ID:d61354ir0
>>192
チップ抵抗器って見たことない?
196デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/15(金) 14:54:35.89ID:76R0IrhIF
>>180
典型的なアフィwebサイトと同じ造りなんだよな
一目でそっとじ
197デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/15(金) 15:03:20.79ID:qkK0C17la
>>193>>195
あの小さい四角いやつか。
電子工作何十年もやってなくて知らなかった。
ググって画像見た。
198デフォルトの名無しさん (スップ Sd02-lusp)
2019/11/15(金) 16:35:54.83ID:uuXKcbIGd
core-i7のパッケージ天面にも貼ってあるから電子工作してなくても見かけることはありそうだが
199デフォルトの名無しさん (ワッチョイ 02a5-pb9v)
2019/11/15(金) 17:24:07.85ID:xeYG9inD0
見かけていてもアレが何なのか分からない、だろう
200デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 17:31:28.56ID:pd2oXw5yd
最小は0201かな
3216とかは巨大に見える
201デフォルトの名無しさん (ワッチョイ 822c-Lnqu)
2019/11/15(金) 17:32:50.90ID:47DeWFED0
マイコン、ラズパイ、PLC, HDL, Rust

ニコ生では、HDLまで行ってるw
202デフォルトの名無しさん (ワッチョイ 8233-iGNt)
2019/11/15(金) 17:44:35.54ID:DqSPL00u0
https://ideone.com/y2Ogra
で0.3がFalseになるのはわかるのですが、0.2がTrueになるのはなぜですか?
203デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 17:49:31.04ID:pd2oXw5yd
一応環境依存

内部が2進数の浮動小数点なら
(普通の範囲なら)2倍は正確

0.3がfalseになるのがわかるなら
わかりそうなもんだけど
204デフォルトの名無しさん (ワッチョイ 8233-iGNt)
2019/11/15(金) 17:49:38.82ID:DqSPL00u0
精度の問題?
205デフォルトの名無しさん (ワッチョイ 8233-iGNt)
2019/11/15(金) 17:50:48.82ID:DqSPL00u0
>>203
ありがとうございました
206デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/15(金) 17:51:24.03ID:NLCWqdB7F
double
https://ideone.com/9COXkq
0.2 True
0.3 False
--------
float
https://ideone.com/wzvO20
0.2 True
0.3 True
207デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 17:51:44.04ID:pd2oXw5yd
これでわかったのかよ

多分わかってない
208デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 17:57:08.67ID:pd2oXw5yd
小数は無限個あるが
doubleやfloatで表現出来る値は有限個
だから正確に表す事が出来る小数はごく一部となる

ほとんどの環境では0.1を正確に表す事が出来ない
だから近似になる

0.1の近似を3個足したものの近似と
0.3の近似

これが同じ値になるかどうかは運しだい
209デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 18:11:10.06ID:pd2oXw5yd
多くの環境では

floatで24bit整数の範囲は正確に表現出来る
doubleで53bit整数の範囲は正確に表現出来る

floatでもdoubleでもlong doubleでも
元の値に対して2^nをかけても2^nで割っても
(それが普通に表現出来る範囲であれば)誤差はない

1/n は、nが2^mの形でない場合は必ず誤差が出る

このくらい覚えて置けばいい
210デフォルトの名無しさん (ワッチョイ d163-jvSr)
2019/11/15(金) 18:18:26.55ID:NeivSIGq0
https://ideone.com/dkY9yU
211デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/15(金) 18:24:08.60ID:uUFlvtLt0
趣味でC言語で遊んでるんだけど入門書読んで、
printf scanf if else switch等使ったプログラム作ったんだけど次に何をしたらいいかわからへんわ。
212デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/15(金) 18:24:52.50ID:uUFlvtLt0
あんまりしっかりとポインタは勉強できてないんだけど、
ポインタっていつ使うの?って感じ。
組み込みやらんと基本的には使わない?
213デフォルトの名無しさん (ワッチョイ 7188-L4DL)
2019/11/15(金) 18:35:40.25ID:SL2qDcaa0
組み込みじゃなくてもある程度大きなプログラムになればガンガン使う
むしろ一番使う型になるレベルで使うのがポインタになることもあるくらいには使う
214デフォルトの名無しさん (ワッチョイ 7188-L4DL)
2019/11/15(金) 18:37:30.96ID:SL2qDcaa0
ていうかscanfでポインタ使ってるで
文字列出力したなたprintfでも使ってる
はじめは実感無いかもしれんが
215デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/15(金) 18:43:16.92ID:uUFlvtLt0
全く実感ない
printfってどうやってできてんの
216デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/15(金) 19:07:35.33ID:uUFlvtLt0
とりあえずポインタの勉強はやり直すわ。
次にArduinoでも触ってみるか
217デフォルトの名無しさん (ワッチョイ 2101-wiCk)
2019/11/15(金) 19:17:18.51ID:hD6OtsPU0
オレオレprintf を実装しようとすると、鼻血が出そうで vsptrintf に○投げしてから加工する方向にいってしまう
218デフォルトの名無しさん (ワッチョイ 7188-L4DL)
2019/11/15(金) 19:17:48.26ID:SL2qDcaa0
>>215
関数に値を渡すのはわかるよね?
printfって関数に出力して欲しい数値や文字を渡してる
この渡すときにCPUの動き的には複製されたものが渡される
数値なら複製しても対して問題ないけど文字列の場合なんかだと複製することで消費されるメモリが増えてしまう
だから文字列全部を複製なんかせずに文字列の先頭の場所だけ渡す
受け取ったprintf側ではその場所を元に文字列にアクセスする
この場所を指し示す仕組みがポインタと呼ばれるもの
10文字でも1000文字でも先頭の場所、つまりアドレスは4byteとかで表せるので情報の受け渡し効率が良い

正確には間違ってる部分もあるかもしれんがだいたいこんなイメージ
219デフォルトの名無しさん (ワッチョイ 2101-PSUN)
2019/11/15(金) 19:23:26.49ID:H7D23ViK0
>>217
そもそもvsprintfのある環境ならprintfあるでしょ。
組み込みとかなら低レベルの1文字出力は作らないといけないけど。
220デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/15(金) 19:24:40.31ID:pd2oXw5yd
出力先が特殊なprintfじゃね?
221デフォルトの名無しさん (ワッチョイ 2101-wiCk)
2019/11/15(金) 19:30:11.03ID:hD6OtsPU0
>>220
そんな感じですです あと暗に頭にタイムスタンプ付加したりとか

VZエディタのASMソース見たときは、整数onlyでも結構複雑だった
222デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/15(金) 19:32:48.14ID:uUFlvtLt0
産休。関数とポインタをもう一度やり直してくる
223◆QZaw55cn4c (ワッチョイ 6247-kMGZ)
2019/11/15(金) 20:42:05.38ID:yJ+o3fPw0
>>211
welcome to http://2chb.net/r/tech/1564310397/
224デフォルトの名無しさん (ワッチョイ 8279-iGNt)
2019/11/16(土) 00:52:24.12ID:D8F8Ex6/0
ポインタを使わないならCを使わない方がいいという程度にはポインタはCの肝
ポインタを使わないなら素直に安全で高級な言語を使った方がいい
225デフォルトの名無しさん (ワッチョイ e17b-5Erk)
2019/11/16(土) 07:48:38.95ID:fjjXSMO90
エントリ関数を int main(int argc, char *argv[]) と書いた時点で
ポインタを使ってる、とも言えるんだよな。

int main(void) で始めてるかもしれんけど。
226デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/16(土) 08:31:42.30ID:ptZ6lm890
int main()しか使ってないわ。どういう時に使うんだっけそれ
227デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/16(土) 09:17:50.44ID:sxDPEgRe0
>>224
C言語を使う用途の多くは
組み込み、OS、ドライバ
だろ

簡単に言語を変えるとかいうなよ
228デフォルトの名無しさん (ワッチョイ e963-L4DL)
2019/11/16(土) 09:48:51.08ID:+/ZlAd+w0
コマンドラインから情報を受け取って処理したいときに使う
関数の引数と同じ
229デフォルトの名無しさん (ワッチョイ 6d51-6HYk)
2019/11/16(土) 09:56:15.61ID:fbhJUidB0
言語を変えるのではなく
職業を変えるべきだなw
230デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/16(土) 10:15:36.12ID:sxDPEgRe0
ポインタの使い方を覚えるって言ってるんだから
それでいいじゃん
231デフォルトの名無しさん (アウアウウー Sa45-coos)
2019/11/16(土) 10:31:31.82ID:jtqy6mRLa
C言語でOS作ってみたいんだけどなぁ。入門レベルじゃきびしいな
232デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/16(土) 10:50:41.32ID:sxDPEgRe0
アセンブラの経験が豊富ならなんとかなる
233デフォルトの名無しさん (ワッチョイ 2101-PSUN)
2019/11/16(土) 10:59:49.49ID:10CoeX0f0
>>231
簡単なRTOSでもまともに作るならCだけで書くのは不可能。
234デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/16(土) 11:09:44.67ID:lV5RucvDd
Cだけで?
そりゃ無理だ
235デフォルトの名無しさん (ワッチョイ 7e7c-iGNt)
2019/11/16(土) 11:34:35.99ID:xKHzNgdA0
>>234
ほんの少しインチキをするだけで、全てC言語で書ける
236デフォルトの名無しさん (スプッッ Sd02-iD2J)
2019/11/16(土) 12:06:40.29ID:lV5RucvDd
バイナリコード直接記述?
それはC言語で記述とは言わないような

インラインアセンブラも同じ
237デフォルトの名無しさん (ワッチョイ 82ad-6d/E)
2019/11/16(土) 22:07:42.30ID:gv6Xc8ej0
>>234
大半はCで行けそうな感じはするけどな。実際にUNIXやLinuxはそうだし。
厳密に完全に100%Cにするとなると最初からそれを考慮してCPU作らないとできないとは思うが、かといってその必要性はないな。研究目的ならわかるが。
238デフォルトの名無しさん (ワッチョイ 8202-y756)
2019/11/17(日) 00:21:50.66ID:CjHjsj5F0
>>237
こういう知ったかして無知晒すバカはどうにかならんのかいな
239デフォルトの名無しさん (ワッチョイ 0295-iGNt)
2019/11/17(日) 05:19:33.36ID:oJzZE04E0
痛いのが好きなんでしょう
鞭も旨い

おそまつさまでした
240デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/17(日) 06:34:34.75ID:cZKVuoHK0
>>237
100%Cでどうやって特権命令出すの?
Cプログラムが動き出せる最低限の準備は何だか知ってる?
241デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 13:31:04.48ID:Mp5WsRX6d
大半は
100%

話がかみあってない
242デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 13:31:40.86ID:Mp5WsRX6d
動き出すだけなら100%C言語って今時珍しくも無い
243デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/17(日) 14:11:44.51ID:0F7CIe0FM
スタートアップルーチンに頼らずにmain関数が自立起動するのか
244デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/17(日) 14:12:07.45ID:SNu9npot0
>>241
「すべてC言語で書ける」に突っ込み入れられてるだけだろ

>>242
OSの話だよ?
245デフォルトの名無しさん (ブーイモ MM0d-7Hrx)
2019/11/17(日) 14:26:46.20ID:Aepb3ANuM
> startup.s/head.s
明日から仕事来なくていいから。
246デフォルトの名無しさん (ワッチョイ 7e7c-iGNt)
2019/11/17(日) 14:29:44.06ID:AyzIbzU+0
>>243
スタートアップをC言語で書くって話でしょ
まあ気合いでなんとかなるさ
247デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/17(日) 14:35:54.32ID:cZKVuoHK0
>>241
大半を100%とは言わないし、
100%CのUNIXやLinuxが大半でもない

話を逸らすな
248デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 14:59:34.01ID:Mp5WsRX6d
スタートアップコードなら100%Cで書けるマイコンは珍しくない

OS 100%は無理

>>240が話題を追加したの
249デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/17(日) 15:17:17.70ID:cZKVuoHK0
231 CでOS作ってみたい
233 RTOSでさえ無理
234 Cだけで?そりゃ無理
237 100%Cは最初からそれを考慮したCPUならできる ←キ
238 237はシッタカ
240 特権命令は?Cプログラムが動き出せる準備は?
241 大半は100% ←キ
243 スタートアップ不要のmainとは?
244 OSの話だよ?
247 話を逸らすな
248 スタートアップだOSじゃない ←キ
250デフォルトの名無しさん (ワッチョイ 7e7c-iGNt)
2019/11/17(日) 15:58:49.57ID:AyzIbzU+0
>>248
>OS 100%は無理
そこも気合いでなんとかなりますぜ!

※気合いとは、次みたいなコードもCとみなしてしまう心意気を指す
int main=195;
251デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 16:08:09.90ID:Mp5WsRX6d
>>240
一行目は特権命令の話
二行目はスタートアップの話
に見える
252240 (ワッチョイ 65e5-6HYk)
2019/11/17(日) 16:20:24.24ID:cZKVuoHK0
>>251
違う
スタートアップの話なんざしてねえよ
おまえベアメタルの経験ゼロだな
253デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 16:31:19.54ID:Mp5WsRX6d
いや、
どっちかっていうと趣味みたいなもんで
いろんなCPUでやってるけど

ただ単に
Cプログラムが動き出せる最低限の条件
と書いてあるんだからOS起動ではないでしょ
254デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/17(日) 16:47:01.78ID:cZKVuoHK0
話の発端からずっとOSの話で
シッタカを指摘されて悔しくて悔しくて仕方なくて
スタートアップの話に逸らそうとしているのが約1名いるが
255デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 16:58:35.66ID:Mp5WsRX6d
Cプログラムと書いてあるんだからCプログラムだろ
OSが起動出来る十分条件ではなく、必要条件の1個
特権命令もその一つ
もっとも特権命令が存在しないCPUや使わなくてもOSがつくれるCPUがあるので
必要条件ではないけど
256デフォルトの名無しさん (スップ Sd02-iD2J)
2019/11/17(日) 17:01:55.70ID:Mp5WsRX6d
OS起動ならOS起動と書くだろう
257デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/17(日) 17:02:57.82ID:0F7CIe0FM
ベアメタルであれば尚更main関数を呼び出す前に割込みベクターやスタックポインタの初期化などいろいろ準備が必要だろ
OSに頼れないので自分で準備しないとC
のプログラムは動き出せない
258デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/17(日) 17:04:33.98ID:8gWobnsKa
さて、次にどんな燃料を投下すれば炎上するか・・・
259デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/17(日) 17:06:07.28ID:8gWobnsKa
とりあえずCでOSでスレが活性化することはわかった。機会があったら他の掲示板でもやってみよう。
260デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/17(日) 18:37:16.77ID:SNu9npot0
>>250
レギュレーション違反ですw

>>236
> バイナリコード直接記述?
> それはC言語で記述とは言わないような
261デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/17(日) 18:42:52.80ID:SNu9npot0
>>257
最近のプロセッサはスタックポインタの初期値はリセット時に決められた番地から読み出すことが多いと思う
割り込みベクタはメモリーに書けばいいだけじゃね?
262◆QZaw55cn4c (ワッチョイ 6247-kMGZ)
2019/11/17(日) 18:50:25.01ID:kPaO6TXK0
>>261
>スタックポインタの初期値はリセット時に決められた番地から読み出す
プログラムカウンタの方じゃないですか?
263デフォルトの名無しさん (ワッチョイ 2101-PSUN)
2019/11/17(日) 18:53:56.89ID:q2lewe9O0
そのメモリ、いやもっと言えばバスの初期化はいつ誰がやるのかと。
264デフォルトの名無しさん (スップ Sda2-iD2J)
2019/11/18(月) 00:18:37.90ID:FmL1TMPdd
>>257
それってすなわちスタートアップコードですよね?
何度も書くけどスタートアップコードを全てCで書けるマイコンは今時珍しくないんですよ
265デフォルトの名無しさん (スップ Sda2-iD2J)
2019/11/18(月) 00:21:29.64ID:FmL1TMPdd
>>263
>>264
266デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/18(月) 03:24:34.33ID:7xBgQ7dd0
>>264
>>236の内容に加えてpragma疑似命令もC言語で記述とは言わないと思う
C言語の構文だけではスタートアップの記述は無理だろう
267デフォルトの名無しさん (ワッチョイ 8201-0xny)
2019/11/18(月) 05:02:13.80ID:lwVIqPwD0
>>262
68KとかARM Cortex M
0x00000000~3 ⇒ SP
0x00000004~7 ⇒ PC
268デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 07:58:00.65ID:skAn5Z6md
Cだけで起動できるCPUって、まさかとは思うがPICじゃねえだろうなwww
269デフォルトの名無しさん (アークセー Sx11-PSUN)
2019/11/18(月) 08:51:34.79ID:G/ZMLQZPx
ROM/RAM内蔵のMCUとROM/RAM外付けのMPUのでは前提が違うので議論が噛み合わない。
>>257>>263は後者の話をしている。
270デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 08:57:47.13ID:skAn5Z6md
メモリの接続方法なんか全然関係ない
おまえアホか
271デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 09:02:39.86ID:skAn5Z6md
PICと言った意味も通じてねえな、こりゃw
まさかの更に下をくぐりやがった
272デフォルトの名無しさん (ワッチョイ 7188-L4DL)
2019/11/18(月) 09:05:45.96ID:tFTaAL8Z0
OSの無い組み込み環境なんて山ほど存在してて、その環境の中で全部Cのもで書いてるとこも存在してる
そもそもOS入れられるような環境とは言えないけど、こういうとこでCで書いてるものにOS的な動作をさせればそれはCのみで作ったOSと言えるのか?
おそらくどこからどこまでがOSの領域か?がずれてるから延々と罵り合いになるのでは?
273デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 09:24:05.89ID:skAn5Z6md
ほらな、やっぱりPICと言った意味が通じてないw
274デフォルトの名無しさん (ワッチョイ e9aa-coos)
2019/11/18(月) 09:59:14.55ID:FeTeb+YA0
私のために争わないで!
275デフォルトの名無しさん (スッップ Sda2-iD2J)
2019/11/18(月) 10:07:53.61ID:sZ0WVu3/d
最近PICを覚えたの?
276デフォルトの名無しさん (スッップ Sda2-iD2J)
2019/11/18(月) 10:13:12.39ID:sZ0WVu3/d
ARMとかRXとかSHとか...
スタートアップ含めCだけで書ける
(全ての環境でとは言わないけど)
277デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/18(月) 10:27:02.98ID:7xBgQ7dd0
組み込み用の処理系についてはメーカ独自拡張の独壇場

コンパイラ本体は
__section
__bank
__interrupt
など独自拡張多し

プリプロセッサも
#pragma
で設定弄らないといけないので注意
278デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/18(月) 10:37:04.01ID:7xBgQ7dd0
スタートアップファイルはC言語のような殆ど何か別言語に近い感覚
279デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 11:31:43.74ID:skAn5Z6md
>>276
そのスタートアップはどうやって起動するんだよ
280デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/18(月) 12:06:28.17ID:vV3s+CrDa
ピクピク
281デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/18(月) 12:28:42.25ID:S9/8fJfLM
>>273
PIC8からPIC32まであるのにPICだけで話が通じると思ってるのはちょっと世間知らずすぎる
282デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/18(月) 12:29:47.29ID:S9/8fJfLM
>>276
具体的な環境書いてみ
configでスタートアップルーチンを生成してるとかのオチじゃないよね?
283デフォルトの名無しさん (ブーイモ MM76-th7b)
2019/11/18(月) 12:31:32.89ID:fft3f69BM
いまなら、C言語だけで書いたOSをUEFI でロードして起動するとかできるだろ?
C言語で書けない操作は UEFI 側で設定したものをそのまま使う
284デフォルトの名無しさん (ワッチョイ 0d73-iGNt)
2019/11/18(月) 12:39:27.00ID:1LpBylKv0
PC-88/98のFDブートはFDの最初のセクタから256バイト読み込んで実行するんだっけ?
そのプログラム書くのに適したCコンパイラってあるの?
285デフォルトの名無しさん (アウウィフ FF45-/Df3)
2019/11/18(月) 12:59:12.61ID:ahZzeXy3F
CP/MにはBDSCが定番だった
286デフォルトの名無しさん (スプッッ Sda2-iD2J)
2019/11/18(月) 13:14:35.59ID:IDpLc7eed
>>279
人に聞かないで自分で調べて
287デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/18(月) 13:15:54.90ID:skAn5Z6md
>>282
俺もそんなことだろうと見ているw
288デフォルトの名無しさん (スプッッ Sda2-iD2J)
2019/11/18(月) 13:23:20.40ID:IDpLc7eed
本気で知りたいならそれ相応の態度で
289デフォルトの名無しさん (ワッチョイ d11d-7HT4)
2019/11/18(月) 14:18:07.35ID:+ljooU2/0
ビジネスで優秀な人材育成する上司は何を教えているのか?

;t=13s
マクドナルド伝説の店長が教える、最強店長になるために必要なこと

;t=3154s
「最強の働き方」長時間労働やノウハウよりも大切なこと

;t=3606s
美容師の楽しさ再発見!やる気スイッチが入る働き方セミナー


視覚障がいを乗り越えた活法家

;t=805s
290デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/18(月) 20:40:54.63ID:oSLwFt1+0
ヒヨッ子が物を知らねえのは別にいいんだよ、当たり前
シッタカこくのと指摘されてからの逆ギレが攻撃対象になるんだ
291デフォルトの名無しさん (ブーイモ MM0d-7Hrx)
2019/11/18(月) 20:50:41.53ID:Zo9NWI12M
>>283
gccの場合は自動的にcrt0-efi-x86_64.Sをリンクするようだが
292デフォルトの名無しさん (アウアウウー Sa45-coos)
2019/11/18(月) 20:54:33.04ID:Ufz4tuHsa
ものづくりC言語熟ってサイトいいじゃん!
293デフォルトの名無しさん (ワッチョイ 02a5-pb9v)
2019/11/18(月) 21:03:14.01ID:UWPzTs1l0
ものづくりC言語熟おいしい!一番好きなバーガーです!! って言ってほしいのか?
294デフォルトの名無しさん (アウアウウー Sa45-coos)
2019/11/18(月) 21:06:39.12ID:Ufz4tuHsa
>>293
もしかしてキ○ガイ?
295デフォルトの名無しさん (ワッチョイ 1102-coos)
2019/11/18(月) 21:29:13.55ID:9xSA7Xxe0
ものづくりC言語塾のポインタの説明わけわからん
296デフォルトの名無しさん (ワッチョイ 2905-n3bN)
2019/11/18(月) 22:06:08.02ID:WvhlQmiy0
C言語のポインタはCPU機械語における間接アドレシングの抽象化だろ?
それ以上でも以下でも無い
297デフォルトの名無しさん (ワッチョイ 0261-bNU/)
2019/11/18(月) 22:11:27.28ID:Vzii0sJA0
>>284
ないです。
余りにもバイト数が少なすぎるので手書きです。
手書きでもバイト数に気をつけて書く必要があります。
298デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/19(火) 00:13:05.05ID:SDEP65Ha0
それ以上もそれ以下もそれを含む
299デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/19(火) 12:48:33.17ID:8naC8O/UF
>>296
インクリメントは良く出来てるな

あとポインタのポインタと配列へのポインタの文法を混乱して覚えてる人が居て
そいつらのせいで劣化コピーが出回ってるのがさらなる混乱の原因

正しく理解して正しく使えばCのポインタは何も難しくない
300デフォルトの名無しさん (スップ Sda2-iD2J)
2019/11/19(火) 13:21:56.35ID:lt+0x6jod
>>299
劣化コピーの具体例をよろしく
この文章だけだと何が問題なのかさっぱりわからん
301デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/19(火) 13:26:52.18ID:O502C4IMd
二次元配列は二重ポインタで扱うという自分の勘違いを正当化したくて
mallocでポインタの配列を作るやり方を唯一正統と強弁するアホが
fjで暴れてたな、そういえば
302デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/19(火) 13:59:41.39ID:9idMfLVKM
ポインタのポインタ **p
配列へのポインタ (*p)[]
ポインタの配列 *p[]
303デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/19(火) 14:08:13.34ID:8naC8O/UF
>>300 みたいなのを炙り出せたのであれば
レスに意味があったと言えよう
304デフォルトの名無しさん (オイコラミネオ MM96-G967)
2019/11/19(火) 19:58:13.32ID:r9zE5eVQM
>>301
めんどいだけでポインタのポインタでも2次元配列かけるでしょ?
勘違いってどういうとこ?
305デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/19(火) 20:13:13.80ID:O502C4IMd
>>304
本人か?
char a[2][2],**b=a;
これが勘違いでないとまだぬかすか?
頭がバカなのか、それともトンマなのか、どっちだ?
306デフォルトの名無しさん (オイコラミネオ MM96-G967)
2019/11/19(火) 20:14:48.63ID:r9zE5eVQM
>>305
そんなん知らんわ
予想の斜め上だ
307デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/19(火) 20:16:56.03ID:c65LTQ+sa
>>299
アセンブラやったことのない人は中々正しく理解できないようで、それでポインタの事だけ書いてある本が沢山出ちゃうんだろうな。
308デフォルトの名無しさん (アークセー Sx11-9KXC)
2019/11/19(火) 21:33:52.66ID:pHwegslWx
何年も書かないと忘れるな〜

ポインタのポインタは、ポインタの値を参照渡しするときくらいしか思いつかん

char *p;
foo(&p);

void foo(char **p) {…}

みたいな、
305のような書き方はピンとこないわ
309デフォルトの名無しさん (ドコグロ MM4a-0xny)
2019/11/19(火) 21:36:01.90ID:+Tz70BZqM
>>304
書けるかどうかじゃなくて
> 唯一正統と強弁するアホが
いたって話でしょ
310デフォルトの名無しさん (ワッチョイ a277-6HYk)
2019/11/19(火) 21:49:57.72ID:3qWxJKAv0
int a=0;
int *pa=&a;
int **ppa =&pa;
int ***pppa = &ppa;
311デフォルトの名無しさん (ワッチョイ 02a5-pb9v)
2019/11/19(火) 22:00:51.47ID:JHNr41O80
でもこういう関数だとポインタだけでやりたくなる

mul(double** x, double** y, int n, int m){

mul(double x[][20], double y[][20], int n, int m){
312デフォルトの名無しさん (ワッチョイ 8173-iD2J)
2019/11/19(火) 22:37:16.16ID:SDEP65Ha0
const 付けない系?
313デフォルトの名無しさん (ワッチョイ 65e5-6HYk)
2019/11/19(火) 22:47:26.54ID:8ta2T3rG0
また関係ないことを・・・
314デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/20(水) 05:59:16.05ID:6t1gUx2GM
関数の引数に限って言えば
func(**p)
func(*p[])
func(p[][])
func(p[][10])
どれでも同じ
引数として配列を引き渡す方法はない
どれも先頭要素へのポインタが値渡しされる
関数側で引数がポインタへのポインタ(いわゆる二重ポインタ)なのか、ポインタの配列なのか、配列の配列(いわゆる二次元配列) なのか区別する手段はない
引数に配列として要素数を渡してもエラーにはならないだけで無視される
315デフォルトの名無しさん (スッップ Sda2-lusp)
2019/11/20(水) 06:42:28.35ID:06vL+ArYd
どこから突っ込んでいいやら・・・
出鱈目にも程があるぜ
316デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/20(水) 07:18:49.43ID:CxWhIUNe0
関数の宣言文で説明だけなので変数型を省略してるだけだろ
配列の変数名がpならば呼び出しは
func(p)
でもいける
結局は先頭アドレスさえ渡せれば何でもいい
317デフォルトの名無しさん (エムゾネ FFa2-lusp)
2019/11/20(水) 07:45:40.36ID:uVU8YbeSF
[][]なんて構文あるかヴォケ
318デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/20(水) 09:49:56.67ID:gQNT2Wxfa
>>314
プロトタイプ宣言しておけばC言語としては違う状態になるよ。
319デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/20(水) 10:34:34.94ID:CxWhIUNe0
プロトタイプ宣言では状態を区別はしない

プロトタイプ宣言
void func(char *p[]);

関数定義
void func(char **p) {}


C言語なら俺に聞け 153 	YouTube動画>7本 ->画像>4枚
320デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/20(水) 12:01:08.83ID:grCkJCm3F
>>308
あほか
>>305 は間違いの例だから
ピンと来なくて当然
321デフォルトの名無しさん (ワイーワ2 FFca-/nAh)
2019/11/20(水) 12:06:59.82ID:grCkJCm3F
>>311
何を目的に書いてるのか知らんが

A: mul(double** x, double** y, int n, int m){

B: mul(double x[][20], double y[][20], int n, int m){

C: mul(double (*x)[20], double (*y)[20], int n, int m){

AとBは等価じゃないぞ
322デフォルトの名無しさん (ワッチョイ cdda-JEG5)
2019/11/20(水) 13:41:25.47ID:CxWhIUNe0
変数としてのxは
A:double型のポインタを指すポインタ
B:double型の配列を要素とする配列の先頭要素を指すポインタ
C:double型の配列を指すポインタ

関数の引数としてのxは
A,B,Cすべてdouble型の参照オブジェクト(何でもいい)を指すポインタ
323デフォルトの名無しさん (アウアウウー Sa45-ikGc)
2019/11/20(水) 15:18:17.42ID:7Jz+3SpEa
>>322
>>321のxのことを言ってるのなら、基礎からやり直せ。
324デフォルトの名無しさん (ワッチョイ cdda-tLD+)
2019/11/20(水) 15:27:36.91ID:CxWhIUNe0
まあ実際C:のような例は見たことはないけど、少なくともA:とB:は関数の引数としては同じと解釈される
中身は受け取った関数側でプログラマが処理する事案であってdouble型の何かを指すポインタという以上の意味はない
325デフォルトの名無しさん (ワッチョイ 0269-wiCk)
2019/11/20(水) 15:59:50.97ID:jGIPXiJ00
分かりきった固定要素数の配列を渡すのはいっかい struct で包んじゃうわ

struct foo {
double array[20];
};

mul(struct foo* x, struct foo* y, ...)
326デフォルトの名無しさん (アウウィフ FF45-/Df3)
2019/11/20(水) 16:26:53.96ID:ACUpjjQJF
>>311 しね
>>324 お前は黙ってろ
327デフォルトの名無しさん (ラクッペ MM81-G967)
2019/11/20(水) 16:40:06.35ID:6t1gUx2GM
>>323,326
ただの罵倒ではなくてもう少し有益なレスしろよ
328デフォルトの名無しさん (アウアウウー Sa45-ikGc)
2019/11/20(水) 16:50:21.31ID:VaHfdLQca
>>324
A,Bそれぞれのsizeof(x)やx+1について、値や型を比較してみろよ。意味が違うことがわかるから。
329デフォルトの名無しさん (アウウィフ FF45-/Df3)
2019/11/20(水) 16:54:14.17ID:ACUpjjQJF
>>327
>>314 func(p[][])
似たようなもんだな
330デフォルトの名無しさん (ワッチョイ cdda-tLD+)
2019/11/20(水) 17:02:30.65ID:CxWhIUNe0
>>328
一応言っておくけど>>322の通り変数のxは意味が違う
関数の引数の場合だけ状況が変わる
*p[]と*ppが同義なのは引数の場合だけ
>>319の通りプロトタイプ宣言と関数定義の両方で混在しても問題ない
331デフォルトの名無しさん (ワッチョイ cdda-tLD+)
2019/11/20(水) 17:03:37.18ID:CxWhIUNe0
訂正
**p ← *pp
332デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/20(水) 17:18:03.94ID:gQNT2Wxfa
>>324
いや。AとBは違う。
333デフォルトの名無しさん (アウウィフ FF45-/Df3)
2019/11/20(水) 17:19:03.29ID:ACUpjjQJF
>>330
>>319 の言ってるのは >>322 のとは違うだろ

これは正しい
>プロトタイプ宣言 void func(char *p[]);
>関数定義 void func(char **p) {}

これは間違い
>プロトタイプ宣言 void func(char p[][20]);
>関数定義 void func(char **p) {}
334デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/20(水) 17:36:55.77ID:gQNT2Wxfa
その通り
335デフォルトの名無しさん (ワッチョイ cdda-tLD+)
2019/11/20(水) 17:38:35.24ID:CxWhIUNe0
納得
そりゃそーだ
すまんかった
336デフォルトの名無しさん (アウアウクー MMd1-+hLn)
2019/11/20(水) 18:37:56.75ID:lnMf/X4/M
初めて書き込む初心者ですが
配列存在そのものがポインタと違う
という話と
ポインタとして渡して同じように扱える
という話の食い違いをしてるのですか?
337デフォルトの名無しさん (アウウィフ FF45-/Df3)
2019/11/20(水) 19:19:34.26ID:ACUpjjQJF
ポインタの配列はポインタのポインタとして扱えるが
配列へのポインタはポインタのポインタとして扱ってはいけないって話
そりゃ無理に使おうとすれば使えない訳じゃないが止めた方が良い
338デフォルトの名無しさん (スプッッ Sd81-iD2J)
2019/11/20(水) 19:45:26.72ID:/a5mIgHWd
char a[2][2];
これは a[0][0], a[0][1], a[1][0], a[1][1] の順にcharが4個ならんだデータ

char *b[2] = {a[0], a[1]};
という配列をaとは別に作ってはじめて
char **として扱える
339デフォルトの名無しさん (スプッッ Sd81-iD2J)
2019/11/20(水) 19:47:17.62ID:/a5mIgHWd
aは(中身は)4このデータの先頭アドレスで
bはアドレスの配列の先頭アドレス

データが異なるので無理やりキャストしてもダメ
340デフォルトの名無しさん (アウアウウー Sa45-nhir)
2019/11/20(水) 20:34:14.51ID:gQNT2Wxfa
そしてまたポインタ解説本が一冊増えるのであった
341デフォルトの名無しさん (アークセー Sx11-9KXC)
2019/11/20(水) 21:23:45.88ID:QqNmmDM2x
>>320
何だそうか、親切にありがとう!
342デフォルトの名無しさん (ワッチョイ 93c5-QS5Z)
2019/11/25(月) 13:03:01.01ID:pSQ/T/wR0
私はC言語の神だ
何か私に聞きたいことはあるか?
343デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
2019/11/25(月) 13:13:12.61ID:pjJuONFZF
余命何年かな
344デフォルトの名無しさん (ワッチョイ 93c5-QS5Z)
2019/11/25(月) 13:18:38.97ID:pSQ/T/wR0
余命は3152578641だ
345デフォルトの名無しさん (スッップ Sd33-/WwJ)
2019/11/25(月) 13:20:19.58ID:FcoOoav6d
なんで & より == の方が強い?
なんで func と &func 両方とも関数へのポインタ
なんで char の符号有無を規定しなかった?
346デフォルトの名無しさん (ワッチョイ 93c5-QS5Z)
2019/11/25(月) 13:22:22.93ID:pSQ/T/wR0
プログラマーは万能である
で、あれば、それらは些細なことだ
347デフォルトの名無しさん (ワッチョイ 2b7c-QS5Z)
2019/11/25(月) 14:10:49.09ID:ZBE9lLbs0
>>345
===は比較演算子で、&はビット演算子(扱いは算術演算子と大差ない)だから。
funcと&funcが同じなのは単なるシンタックスシュガー。 配列のそれと変わらん。
charは符号もへったくれも無かったため。 最上位がパリティなことも多かったし。
348デフォルトの名無しさん (ワイーワ2 FF63-KqLj)
2019/11/25(月) 14:13:37.69ID:pjJuONFZF
char hoge[10][10];
があったとして
hoge と &hoge[0][0] が一緒なのは判るが
&hoge とか hoge[0][0] は一緒じゃない
349デフォルトの名無しさん (ワッチョイ 3988-+jxl)
2019/11/25(月) 14:40:15.02ID:xlCLCIdV0
算術演算子と大差無いと言うならなおさら優先順位が逆転するのは不思議
つうか神様への質問なんだからなんでそういう仕様になったかを答えてほしんでしょ
350デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/25(月) 15:00:15.21ID:Nb9YSlRod
>>347
===って、Bにあったやつか?
等値比較代入
351デフォルトの名無しさん (ワッチョイ 1369-BEIG)
2019/11/25(月) 15:08:44.39ID:PWp9fS7h0
比較演算子が最下位ならすっきりする
 a + 1 == 2 → (a + 1) == 2 の順と同じく
 a & 1 == 2 → (a & 1) == 2 や
 a % 2 == 1 → (a % 2) == 1 であってほしい
352デフォルトの名無しさん (ワッチョイ 997b-H1eq)
2019/11/25(月) 16:42:52.23ID:Z7hJDN/t0
わたしゃ神様じゃないけど、カーニハンとパイクの『プログラミング作法』には
「カッコを使って演算子の優先順位の曖昧さを避けよう」みたいな項があるね。
もちろん規格では厳格に決まってるけど、使用者の記憶があやふやって話。

あの辺を読むと「ビット演算子より比較演算子を優先したのは誤りだったかも」と
ご当人が思ってたんじゃないかと感じるわ。
353デフォルトの名無しさん (ワッチョイ f963-/L9V)
2019/11/25(月) 16:46:33.35ID:72Xydbv80
今更いじれないだろうな
354デフォルトの名無しさん (スッップ Sd33-/WwJ)
2019/11/25(月) 18:07:03.06ID:FcoOoav6d
神様の回答が1個も無い
355◆QZaw55cn4c (ワッチョイ d347-PF5/)
2019/11/25(月) 19:12:09.16ID:2aQAGKkK0
>>342
K&R1 から K&2 への相違で強烈に疑問を持っているのが
引数に配列をとったときは、配列の先頭のポインタが渡るのに、引数に構造体をおいたときは、構造体の実体がコピーされて渡されるのはなぜ?
馬鹿が
struct A {
int a[1234567890];
};
とかやったときには、これが関数の引数に乗ったときには、正気でコピーする気なのですか?
356デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/25(月) 19:22:13.99ID:Nb9YSlRod
ん? 構造体が左辺値変形されるなんてことあったか?
357352 (ワッチョイ 997b-H1eq)
2019/11/25(月) 19:27:41.70ID:Z7hJDN/t0
2点ほど訂正させてくれ。

カーニハン先生はC言語に大きな貢献をしてるけど、C言語の設計は
リッチーさんの仕事でカーニハンさんは手を出してないんだね。
だからこの場合「ご当人」と呼ぶのは正しくなかった。
「ビット演算子より比較演算子を優先するとは、デニスの野郎め
下手コキやがって」と思ってるんじゃないかと感じるわ。
…という具合に訂正。

もうひとつ。カーニハン先生は今の時点で健在らしい。
実は先の投稿の時点で亡くなってると勘違いしていた。
これもリッチーさんと混同したのが原因。
358◆QZaw55cn4c (ワッチョイ d347-PF5/)
2019/11/25(月) 19:39:14.82ID:2aQAGKkK0
>>342
extern はいらない子!じゃないのですか?extern の必要性はなんですか?
359◆QZaw55cn4c (ワッチョイ d347-PF5/)
2019/11/25(月) 19:42:04.68ID:2aQAGKkK0
>>342
可変長引数のプロモーション(格上げ)が理解できない
なぜ float は double に、char, short, は int に格上げされるのか?
360デフォルトの名無しさん (JP 0H95-o4xC)
2019/11/25(月) 20:03:51.13ID:EmSI22f6H
>>355
構造体のポインタを渡すとして、仮引数はどう宣言するよ
361デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/25(月) 20:05:24.40ID:Nb9YSlRod
>>358
いらない子はtentativeなんだが
tentativeはtentativeの存在すら認識できない
知恵遅れのための必要悪だ
おまえのためだったとして
本当のいらない子は誰だろうね
362◆QZaw55cn4c (ワッチョイ d347-PF5/)
2019/11/25(月) 20:19:59.47ID:2aQAGKkK0
>>360
関数の引数には、構造体のポインタではなくて、構造体そのものを渡します、構造体そのものを渡せるようになったのは K&R2 から可能になりました
C の神 >>342 に、この改変―個人的には改悪について、一度お聞きしたいと思っていたんです
363デフォルトの名無しさん (ワッチョイ 6963-+jxl)
2019/11/25(月) 20:24:34.17ID:2eomwteL0
なぜ神への質問を神でないものが回答するのか
神にでもなったつもりか!
364デフォルトの名無しさん (ワッチョイ fb8c-qZD/)
2019/11/25(月) 20:35:27.76ID:NzDv81TY0
ヘッダファイルには何を書きますか?
こめおしだるまとかですか
365デフォルトの名無しさん (ワッチョイ 194f-/L9V)
2019/11/25(月) 21:22:14.50ID:HEHU1BiX0
charは文字だから符号は重要じゃないってのはいいが、ならbyte型用意しておいてくれよと思う。
366デフォルトの名無しさん (ワッチョイ 13f9-QS5Z)
2019/11/25(月) 21:34:03.78ID:Qwn/HBF30
signed charもunsigned charもあるだろ
367デフォルトの名無しさん (スッップ Sd33-/WwJ)
2019/11/25(月) 21:47:48.61ID:FcoOoav6d
signed charもunsigned charもcharもあるのが糞
368デフォルトの名無しさん (ワッチョイ 812d-pyDD)
2019/11/25(月) 21:50:36.94ID:wftjKJqc0
char = unsigned char に固定してくれりゃ万事楽だったのに
369デフォルトの名無しさん (ワッチョイ 1901-BEIG)
2019/11/25(月) 21:53:07.11ID:u+UfcqYe0
「8ビットめいっぱい使う奴(国)が面倒おこしてめんどくせぇ」
370デフォルトの名無しさん (ワッチョイ f963-/L9V)
2019/11/25(月) 21:56:46.03ID:72Xydbv80
文字割り当てで最初から8bit全桁使ってしまっていれば良かった
371デフォルトの名無しさん (ワッチョイ 194f-/L9V)
2019/11/25(月) 22:06:54.47ID:HEHU1BiX0
8bit整数はsigned/unsigned charでいいやと思っていたらC++で裏切られた。
372デフォルトの名無しさん (ワッチョイ 1395-QS5Z)
2019/11/25(月) 22:07:47.81ID:y1DwbhRd0
テキハ ホンノウジニ アリ
373デフォルトの名無しさん (ワッチョイ 1901-BEIG)
2019/11/25(月) 22:11:35.20ID:u+UfcqYe0
2バイト(16ビット)もあれば、各国のが収まるだろ? →ダメでした
374デフォルトの名無しさん (ワッチョイ 1379-QS5Z)
2019/11/26(火) 00:36:17.99ID:TKGz3ntv0
なんでstaticにこんなにたくさんの意味をもたせた?
引数のconstが絶望的にわかりにくいんだが何でこんな文法にした?
375デフォルトの名無しさん (ワッチョイ 13ad-c8oy)
2019/11/26(火) 04:17:51.19ID:q8waUqPK0
これからの時代のcharは64bitで
376デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/26(火) 07:18:47.84ID:auNO4ARld
>>374
const? 何がそんなに?
377デフォルトの名無しさん (ワッチョイ 2b7c-/L9V)
2019/11/26(火) 12:44:02.82ID:HcEoAWHl0
>>376
もっとくやしく
378デフォルトの名無しさん (スッップ Sd33-/WwJ)
2019/11/26(火) 13:07:39.43ID:njyF587zd
const char * *
char * const *
char * * const

たしかに分かりにくい

volatileも
379デフォルトの名無しさん (ブーイモ MM33-o4xC)
2019/11/26(火) 13:08:45.16ID:GOgRvMiLM
>>377
くそ、何がだよ。constの何がそんなにわかりにくいんだよっ!ちくしょうっ!!
380デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/26(火) 15:05:20.59ID:auNO4ARld
なんだ、バカよけってことかよ
つまんね
381デフォルトの名無しさん (アウアウウー Sa9d-Pqlv)
2019/11/26(火) 18:23:04.66ID:UD9MC/mBa
>>377
キーッ
382デフォルトの名無しさん (スッップ Sd33-xphW)
2019/11/26(火) 19:05:11.84ID:auNO4ARld
サル?
383デフォルトの名無しさん (アウアウウー Sa9d-Pqlv)
2019/11/26(火) 20:29:20.89ID:UD9MC/mBa
もっとはんなりと言ってください
384デフォルトの名無しさん (ワッチョイ 0b12-b/sn)
2019/11/26(火) 21:26:44.95ID:IcZXgcFp0
モンキーですこと
385デフォルトの名無しさん (ワッチョイ 13ad-/L9V)
2019/11/26(火) 22:25:58.87ID:FP/g45Qv0
これからはRISC-V
386デフォルトの名無しさん (ワッチョイ 13ad-c8oy)
2019/11/27(水) 00:28:00.77ID:0YyUhowx0
constどすえ
387デフォルトの名無しさん (ワッチョイ 9202-KPDH)
2019/11/28(木) 01:13:55.51ID:omfIxgsG0
void君いる?
388デフォルトの名無しさん (ワッチョイ b163-1Sqp)
2019/11/28(木) 01:37:02.70ID:XlAtYd3v0
voidならsp使わないという利点があるんだからいるのでは?
389デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/11/28(木) 01:38:47.97ID:PoPpbfsh0
spとは?
390デフォルトの名無しさん (ワッチョイ 5e46-Tzvd)
2019/11/28(木) 03:19:24.36ID:saOZYqHd0
 ヘ_ヘ
ミ・・ ミ
(   )〜
391デフォルトの名無しさん (ワッチョイ 9202-KPDH)
2019/11/28(木) 09:18:13.24ID:omfIxgsG0
void君見てんだろ?
またあの名言聞きたいよ

てかspて何だ?
392デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/11/28(木) 09:58:09.40ID:drahqBh90
おじいちゃん、おはよう
393デフォルトの名無しさん (ブーイモ MMb2-ijG8)
2019/11/28(木) 11:52:01.48ID:dwMkkEn2M
何の話しをしているのですか?
394デフォルトの名無しさん (ワントンキン MM62-Tzvd)
2019/11/28(木) 12:29:57.76ID:4okpNGfUM
話しとは?

 ヘ_ヘ
ミ・・ ミ
(   )〜
395デフォルトの名無しさん (アウアウウー Sacd-8Irb)
2019/11/28(木) 12:49:27.76ID:pgFu+V4ea
はなしししししし
396デフォルトの名無しさん (スッップ Sdb2-4gZL)
2019/11/28(木) 13:08:00.18ID:HUd7Y1FLd
void君て何?
397デフォルトの名無しさん (ワッチョイ 1269-o7DB)
2019/11/28(木) 14:14:09.56ID:cHXg4S3V0
fj.comp.lang.c japan.yoso 何年前…
398デフォルトの名無しさん (アウアウウー Sacd-8Irb)
2019/11/28(木) 17:13:55.23ID:pgFu+V4ea
(´-`).。oO(今の人は newsgroup なんて知らないんだろうなあ・・・)
399デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/11/28(木) 17:34:29.53ID:drahqBh90
公園で紙芝居をやってた頃の話だから
400蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-cQuP)
2019/11/28(木) 17:56:05.01ID:7otTe0SQ0
スタックポインタ
401デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/11/28(木) 18:13:00.42ID:PoPpbfsh0
voidならスタックポインタを使わない?
意味不明
402蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb2-cQuP)
2019/11/28(木) 18:17:12.36ID:tnSWQjUnd
俺もわからん。
403デフォルトの名無しさん (ワッチョイ 1902-UMS6)
2019/11/28(木) 18:46:29.37ID:+WcD/xQQ0
C++やるで
404デフォルトの名無しさん (ワッチョイ 9295-R3ru)
2019/11/28(木) 18:47:49.35ID:EjjwcG+D0
いってらっしゃいませ
405デフォルトの名無しさん (ワッチョイ 1902-UMS6)
2019/11/28(木) 19:29:09.73ID:+WcD/xQQ0
C++あかんの?
406デフォルトの名無しさん (スッップ Sdb2-OKkK)
2019/11/28(木) 19:42:31.72ID:YpOyjZW5d
何十年経ってもマウント取られたままなやつは
成長する意欲すら根こそぎ取られたただの産廃
唾棄するにも値しない
407蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-cQuP)
2019/11/28(木) 20:01:16.22ID:7otTe0SQ0
マウント富士、待ったか、産め。
408デフォルトの名無しさん (アウウィフ FFcd-Qbqw)
2019/11/29(金) 10:41:44.97ID:N/f9f1S7F
つかき君いるのかな
409デフォルトの名無しさん (スプッッ Sd69-4gZL)
2019/11/29(金) 12:49:35.50ID:gmGtMFq3d
◯◯君が多過ぎて
だれかまとめろ
410デフォルトの名無しさん (ワッチョイ 5ef2-zAiV)
2019/11/29(金) 17:04:48.86ID:F/drosec0
>>407
某ゲームで、ボスバトルまでの待ち時間が結構ありまして、そのちょっと前のタイミングを知るのに
ストップウォッチ兼タイマー ver 0.1 を愛用しております。 自分で作ってもよかったのですが
蟻さんので必要十分だったのでありがたく使わせてもらっています。
ありがとうございました!
411蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb2-cQuP)
2019/11/29(金) 17:51:10.95ID:qKvWOrt2d
>>410
どういたしまして
412蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb2-cQuP)
2019/11/29(金) 19:33:21.96ID:qKvWOrt2d
ソースコード見たい?
413蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-Ql8R)
2019/11/29(金) 19:39:20.32ID:l2dO7tMx0
https://github.com/katahiromz/mztimer
はいどうぞ。
414蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-Ql8R)
2019/11/29(金) 19:41:30.08ID:l2dO7tMx0
昔の汚いソースだね。グローバル変数使いまくり。
415デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/11/29(金) 19:44:15.31ID:w9Gg68xu0
パンツの中見せるの?
416デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/11/29(金) 19:58:16.23ID:4DEcYZGM0
inline
が泣けるwww
417デフォルトの名無しさん (ワッチョイ d2c5-R3ru)
2019/11/29(金) 20:52:16.59ID:Lw6oDHHK0
>>413
TDM-GCCだとコンパイルできなかった
418蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdb2-cQuP)
2019/11/29(金) 20:54:12.58ID:qKvWOrt2d
>>417
リソースがsjisだからUTF-8にして、コードページにちょっとしたトリックをするとビルドできるよ。
419蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 8101-Ql8R)
2019/11/29(金) 21:40:56.87ID:l2dO7tMx0
改良しました。
420デフォルトの名無しさん (ワッチョイ d2c5-R3ru)
2019/11/29(金) 21:48:18.65ID:Lw6oDHHK0
CMakeになっとるやんけ
421デフォルトの名無しさん (ワッチョイ d2c5-R3ru)
2019/11/29(金) 23:02:39.40ID:Lw6oDHHK0
>>419
蟻人間さんプルリク送っておいたからマージしてね
422デフォルトの名無しさん (ワッチョイ d2c5-R3ru)
2019/11/29(金) 23:06:54.55ID:Lw6oDHHK0
プルリク拒否られた・・・
423デフォルトの名無しさん (ササクッテロ Sp79-YC6P)
2019/12/01(日) 19:27:28.70ID:QQlcLgdJp
大学の課題でフーリエ変換を利用した画像保存プログラムを作成せよっていう
課題が出ました…

もうお手上げです。助けてください
424◆QZaw55cn4c (ワッチョイ 7247-ddQu)
2019/12/01(日) 19:32:56.92ID:mRJ420VP0
>>423
宿題の文章を一文字も間違えずに正確に転載できる技術を持っているのなら
http://2chb.net/r/tech/1434079972/
で話の続きを聞く準備はあります、その出題自体はどこか変だとは思っていますが
425デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/01(日) 19:35:57.20ID:p3Z7Nr0hd
>>423
画像の圧縮?
426デフォルトの名無しさん (ササクッテロ Sp79-YC6P)
2019/12/01(日) 19:37:50.36ID:QQlcLgdJp
>>424
>>425
そうです。
実際に本気で組んだら何行くらいになるんでしょうか?
それだけでも目安を教えてほしいです。

例えば
木の絵をピクチャーボックスに描きました。
フーリエ保存してファイルを作成します。
ファイルを再現できました。
同じ絵です。
成功です。

こんな感じです。
427デフォルトの名無しさん (ワッチョイ 9e12-aYeG)
2019/12/01(日) 19:38:04.98ID:ManO1ilk0
大学名を教えてくれたらヒントくらいは出す
428デフォルトの名無しさん (ワッチョイ a901-f/qG)
2019/12/01(日) 19:53:08.67ID:W5IIwakz0
元の画像に戻ったら成功って事はフーリエ変換と逆変換かな?
フーリエ変換は外部ライブラリ使ってok?
okならOpenCV使えば良いんじゃね?
429デフォルトの名無しさん (ワッチョイ 9e2d-UfrM)
2019/12/01(日) 22:21:33.72ID:9XVhluJD0
画像圧縮でフーリエ変換は罠だな、最初からDCT使って提出しようず
430デフォルトの名無しさん (ワッチョイ 922c-Ql8R)
2019/12/01(日) 22:52:36.44ID:UCpH0Yie0
単機能だから、AWS Lambda で出来ないのか?
ライブラリを探すだけだろ

C/C++, PHP は、Lambdaには採用されていないけどw
431デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/02(月) 00:41:46.52ID:RIgVO6ZZd
>>426
何でも良いなら
1x8に区切って1次元でフーリエ変換して
適当にビット数を減らして保存

読み出してビット数を元にもどして逆フーリエ変換

フーリエ変換は
abcdefghhgfedcba
のようにすると
同じ結果が2個ずつ出るので
半分だけ保存する
432デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/02(月) 00:42:32.51ID:RIgVO6ZZd
さすがに1次元じゃ減点かなあ
433デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/02(月) 00:46:10.70ID:RIgVO6ZZd
8x8でやるなら
横でフーリエ変換した結果に対して縦でやればいい
16個のデータにするのは横とおなじ
434デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/02(月) 00:48:32.83ID:RIgVO6ZZd
フーリエ変換をDCTに変えて
ジグザグスキャンしてハフマン符号化すると
jpgになる
435デフォルトの名無しさん (ラクッペ MM69-iMJF)
2019/12/02(月) 02:45:05.18ID:uImhRr2lM
大学の課題と言うくらいだから画像云々はただの手段で目的はフーリエ変換というかFFTのアルゴリズムを実装できるか
というのが評価基準だと思う
間違って外部ライブラリを使ったり変に出題者の意図を捻じ曲げて解釈したりすれば減点される可能性高いから注意しろよ
436デフォルトの名無しさん (ワッチョイ f514-3RYV)
2019/12/02(月) 09:05:35.78ID:cSs5r0tn0
>>435
みんな大学の課題という前提を忘れて実務的実用的な話になってるよね
フーリエ変換と逆変換をプログラムで実装できているかが採点基準であって
画像はバイナリデータがちゃんと元に戻っているか確認する手段にすぎないと思う
437デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/02(月) 13:14:43.06ID:xJykAg3Zd
圧縮って書いてあるんだからバイナリ一致しなくてもいいのでは?
同じ絵っていうのはパッと見同じってことじゃなくて?
438デフォルトの名無しさん (ワッチョイ 6969-o7DB)
2019/12/02(月) 13:29:01.68ID:XPQaDzxS0
可逆圧縮か不可逆圧縮か
439デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/02(月) 13:30:39.72ID:xJykAg3Zd
不可逆でフーリエ変換?
440デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/02(月) 13:30:57.35ID:xJykAg3Zd
逆だ

可逆でフーリエ変換?
441デフォルトの名無しさん (ワッチョイ 6969-o7DB)
2019/12/02(月) 13:33:14.63ID:XPQaDzxS0
隣接ピクセル間隔より狭い高調波は不要だから有限の離散フーリエ変換でも
実質可逆とみていいんだよね? (符号化による情報落ちを考慮しない話)
442デフォルトの名無しさん (アークセー Sx79-f/qG)
2019/12/02(月) 14:34:46.17ID:1jC9vBnEx
フーリエは本来可逆だ。
443デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/02(月) 14:52:09.59ID:xJykAg3Zd
圧縮が目的でフーリエ変換するのに
何も情報を減らさずにそのまま戻してどうする?
444デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/02(月) 14:53:09.69ID:xJykAg3Zd
>>441
心配しなくても
ナイキスト周波数を越える成分はフーリエ変換の結果には含まれない
445デフォルトの名無しさん (ワイーワ2 FF1a-YC6P)
2019/12/02(月) 14:56:19.28ID:9YVAThVAF
>>423
>>426
離散コサイン変換じゃいかんのか
446デフォルトの名無しさん (ワイーワ2 FF1a-YC6P)
2019/12/02(月) 14:59:03.83ID:9YVAThVAF
>>432
どうせ課題なんだしそこまで求めてないというか
もしすごいのが出来たら教授が自分の成果にして発表するんやろ
447デフォルトの名無しさん (エムゾネ FFb2-YC6P)
2019/12/02(月) 15:03:30.60ID:HSnksJTzF
>>442
ほんそれ

ただし無限な
448デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/12/02(月) 15:04:01.88ID:ImcNE8i40
スゴイの出来たら、先に特許申請だな
449デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/02(月) 15:06:19.88ID:R6hiSLip0
講義での学習課題としては非圧縮でないと判定が面倒だな
単にデータを間引いただけなのか演算を間違っているのか確認に手間が掛かる
むしろ完全可逆で実装した方が採点する側としては分かりやすいだろう
出題者の意図はどこにあるか質問者は理解しているのだろうか?
450デフォルトの名無しさん (ワッチョイ 12a5-dfs3)
2019/12/02(月) 15:16:11.81ID:az4xQt0G0
なんで理解しなきゃいけねーの
そういう旨なら文章にハッキリ書いてくれねーと困るワケ
お気持ちを察せよ なんてのが罷り通る案件なの?
451デフォルトの名無しさん (ワッチョイ 12a5-dfs3)
2019/12/02(月) 15:18:11.07ID:az4xQt0G0
「オメーの気持ちなんてしったこっちゃねー
 オレに分かるように話せ」
が今の潮流

分からないように反為さないヤツは無視していいし排除していい
なんつったってオレが理解出来ないヤツは何言ってるか分からないコミュニケーション不可能な敵に近いからな
気持ち悪いから排除してもいいし、何よりオレに理解されようと思ってない
だから排除していいでしょ

……という思考で動くのが現代の日本社会
452デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/02(月) 15:21:55.25ID:R6hiSLip0
いやクライアントの意向を無視して好き勝手やっていたら仕事干されるだろ
453デフォルトの名無しさん (ワッチョイ f514-3RYV)
2019/12/02(月) 16:43:27.43ID:cSs5r0tn0
保存とは書かれているが圧縮とはどこにも書かれてない件
454デフォルトの名無しさん (ワッチョイ 697b-GzAZ)
2019/12/02(月) 16:47:13.54ID:wj2s3ic80
てか皆さん「フーリエ変換くらい当然知ってる」って雰囲気なのが凄いわ。
455デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/12/02(月) 17:56:06.03ID:kmSxls5X0
>>453
>>425,426
456デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/12/02(月) 18:01:01.74ID:kmSxls5X0
圧縮しないなら
保存でフーリエ変換使う意味がわからんがな
457デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/02(月) 18:04:51.11ID:R6hiSLip0
フーリエ変換そのものは理系の大学卒であれば誰でも知ってる
具体的な数値計算のアルゴリズムを知っているかはその人の専門分野による
458デフォルトの名無しさん (ワッチョイ 5e7b-t+bP)
2019/12/02(月) 18:35:35.76ID:PAbfC2b00
理系でも生物系なら触りもせん
459デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/02(月) 18:53:16.42ID:R6hiSLip0
専門課程ではなくても一般教養の数学系の講義で学んでると思うけど
460デフォルトの名無しさん (ワッチョイ 5e7b-t+bP)
2019/12/02(月) 19:00:10.22ID:PAbfC2b00
微積と線形代数ぐらいで触らんかったぞ
大学なんか講師次第だからなあ
461デフォルトの名無しさん (ワッチョイ d963-3RYV)
2019/12/02(月) 19:09:01.78ID:ImcNE8i40
文系だと無いと思うな
統計学や代数幾何、微積分
この辺まで
462デフォルトの名無しさん (アウアウウー Sacd-f/qG)
2019/12/02(月) 19:11:47.56ID:CL9/qeyha
はるか前なので忘れたが、大学ではフーリエ級数って名前だった希ガス
463デフォルトの名無しさん (ワッチョイ 0973-4gZL)
2019/12/02(月) 19:12:24.77ID:kmSxls5X0
理系の大学卒だが
フーリエ変換を大学で習った記憶はないなあ
覚えてないだけかな?
464デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/02(月) 19:40:44.78ID:R6hiSLip0
フーリエ変換はフーリエ級数展開の一般化
フーリエ級数展開の基本周期を無限大まで拡大すると周波数成分は離散から連続となる
要するに周波数成分を連続スペクトルとして扱うのがフーリエ変換
465デフォルトの名無しさん (ドコグロ MM69-MhVQ)
2019/12/03(火) 19:46:15.44ID:90Sp73uqM
画像のフーリエ変換なんてどうやってやるんだ?って思ってググったら結構面白いな
ちょっと実装してみよう
https://algorithm.joho.info/image-processing/fourier-transform/
466デフォルトの名無しさん (ワッチョイ 9279-R3ru)
2019/12/03(火) 22:43:48.90ID:nrVtlETj0
数学科院卒だがフーリエ変換には掠りもしてない
工学部の一部しか触ってないだろう
467デフォルトの名無しさん (ラクッペ MM69-iMJF)
2019/12/04(水) 02:04:25.88ID:k3euaH00M
数学的には解析学の領域
どちらかといえば数学と物理の境界
電気工学や情報工学では必須
https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B
468デフォルトの名無しさん (ラクッペ MM69-iMJF)
2019/12/04(水) 02:24:25.40ID:k3euaH00M
工学部では厳密な理論よりも応用が重要なので表面的な触りだけで深入りはしない
厳密な議論はやはり数学者の分野だと思う
469デフォルトの名無しさん (ワッチョイ f514-3RYV)
2019/12/04(水) 09:27:46.76ID:bVbh++oq0
画像処理はOpenCVとかで済ましちゃうから細かい数式は気にしない
470デフォルトの名無しさん (ラクッペ MM69-iMJF)
2019/12/04(水) 09:38:25.43ID:ayTFyO7RM
それには同意
フーリエ変換の利用にはFFTの概要だけ理解していれば十分
ただ数学の専門家が掠りもしてないというのは如何なものかとは思う
471デフォルトの名無しさん (ワッチョイ b5da-mphH)
2019/12/04(水) 10:58:24.04ID:9VaeVeX00
Wikipedia繋がりでFFTのリンク開いてみるとVisualBasicでの実装例が掲載されてるね
https://ja.wikipedia.org/wiki/%E9%AB%98%E9%80%9F%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B
472デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/04(水) 13:12:26.50ID:6uL3pMIBd
>>468
数学的にはとっくの昔に解決してるから
あとは工学系の仕事
473デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/04(水) 13:15:06.38ID:6uL3pMIBd
>>470
応用数学とかそういう分野ならまだしも
純粋な数学者はそんなことには興味がない
474デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/04(水) 13:17:30.35ID:6uL3pMIBd
FFTはアルゴリズムの名前
475デフォルトの名無しさん (ラクッペ MM69-iMJF)
2019/12/04(水) 13:33:37.43ID:ayTFyO7RM
ラプラス変換やz変換あたりだと完全に工学分野だけどフーリエ変換くらい汎用なものは数学分野でも活用されてると思うけどね
フーリエ級数はローラン級数などと同じ複素解析の基本的な考え方でしょ
べきに展開するか指数に展開するかの違いくらいのもの
476デフォルトの名無しさん (スップ Sdb2-4gZL)
2019/12/04(水) 13:59:41.66ID:6uL3pMIBd
>>475
>>472
477デフォルトの名無しさん (ワッチョイ a291-ByFH)
2019/12/04(水) 14:02:42.65ID:kZk+LcEC0
無理を言ってはいけない
数学者には楽器は作れても名曲を作る事はできない
478デフォルトの名無しさん (スプッッ Sd12-4gZL)
2019/12/04(水) 15:03:29.21ID:49y1id9ud
名曲を作るのは数学者でも物理学者でも工学博士でもない
発明家や企業だ
479デフォルトの名無しさん (アウアウウー Sacd-8Irb)
2019/12/04(水) 21:02:14.66ID:wHBVaWfta
沖縄音階は適当にランダムに音出しても曲に聞こえちゃうけどな
480デフォルトの名無しさん (アウアウウー Sacd-3/Yl)
2019/12/04(水) 22:00:13.57ID:Ibv81ciOa
>>479
それは沖縄音階に馴染みがないから、沖縄音階が使われているだけで沖縄っぽいと感じてるだけなんじゃないかな?
沖縄の人からしたら、そんなデタラメでは曲として成り立ってないと思わないのかな。
481デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/05(木) 00:53:08.83ID:MEu1VAiTM
そういった抽象的な感覚を数値化して扱うための手段がフーリエ解析やスペクトル解析と呼ばれる分野
音楽の音階(周波数)やリズム(時系列)を分解して客観的に評価するのが科学的なアプローチ
482デフォルトの名無しさん (ワッチョイ 4dda-vpIn)
2019/12/05(木) 03:51:45.82ID:6S4oFaeF0
>>481
どちらかといえばウェーブレット解析の方が適しているような気がする
フーリエ変換では周波数特性を求める際に時間領域の情報は失われる
https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E5%A4%89%E6%8F%9B

プログラムで扱うなら離散ウェーブレット変換
https://ja.wikipedia.org/wiki/%E9%9B%A2%E6%95%A3%E3%82%A6%E3%82%A7%E3%83%BC%E3%83%96%E3%83%AC%E3%83%83%E3%83%88%E5%A4%89%E6%8F%9B
483デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/05(木) 07:07:45.12ID:MEu1VAiTM
確かにフーリエ解析では周波数成分の変化の時系列データを扱うのは難しい
少し浅はかだったなすまん
それにしても数学者が理論を確立して証明しそれをベースに開発が進むという典型例だな
484デフォルトの名無しさん (アウウィフ FFa9-MVf8)
2019/12/05(木) 11:04:28.35ID:IbmhSLeWF
200年くらいかかってるな
ベイズで100年ちょっとか
485デフォルトの名無しさん (アウアウウー Saa9-uArc)
2019/12/05(木) 12:56:44.93ID:esMh+bxMa
>>480
さあ?まあ、実際にやってみな。自分でピアノやオルガンのキーを沖縄音階で適当に押すだけでわかる。
486デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/05(木) 13:09:00.01ID:2uRKrxFid
自分で弾いたら曲になるように弾いちゃうからランダムじゃない
本当にランダムで弾いたら曲にならない
487デフォルトの名無しさん (アウウィフ FFa9-MVf8)
2019/12/05(木) 13:51:21.95ID:IbmhSLeWF
ム板ならそれらしくランダムに演奏するソフトうp汁

488デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/05(木) 15:14:54.84ID:2uRKrxFid
糞曲に興味はない
489デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/05(木) 23:45:36.26ID:5h4sz8350
質問失礼いたします。
以下のpopcountは引数xを2進数で表したときの1の数を返す関数なのですが、
動作原理がよく理解できないため考え方のヒントなどをいただけないでしょうか。

int popcount(unsigned long long x)
{
  x = (x & 0x5555555555555555) + (x >> 1 & 0x5555555555555555);
  x = (x & 0x3333333333333333) + (x >> 2 & 0x3333333333333333);
  return (int)(((x & 0x0f0f0f0f0f0f0f0f) + (x >> 4 & 0x0f0f0f0f0f0f0f0f)) % 0xff);
}

以下のpopcount2は自分で作ったもので、これならうまくいくことは分かるのですが、
上のpopcountも本質的には同じことをやっていると考えていいものなのでしょうか。

int popcount2(unsigned long long x)
{
  int n = 0;
  for (int i = 0; i < 64; i++)
  {
    if ((x & 1ull << i) != 0ull)
    {
      n++;
    }
  }
  return n;
}

どうぞよろしくお願いいたします。
490デフォルトの名無しさん (ワッチョイ 25e8-AIHr)
2019/12/05(木) 23:51:53.81ID:rB1NeBwS0
https://ideone.com/8LfIh0
こんにちは。
ちょっと思いついたので、こういうコードを書いたのですが、
普段からreallocを使わないのでこのコードがあっているか解らないのです。
これで大丈夫ですか?
491デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 00:02:45.40ID:lGRN9wM80
>>490
reallocが成功した場合古いポインタに対してfreeは呼ばなくていいと思いますよ。
reallocの戻り値は古いポインタと異なるものになる保証はないはずなので、
freeを呼んでしまうとせっかくreallocした領域まで解放されてしまうかも。
492デフォルトの名無しさん (ワッチョイ 25e8-AIHr)
2019/12/06(金) 00:04:45.19ID:j6TI2G0x0
>>491
了解です。ありがとうございました。
493デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 00:12:50.26ID:lGRN9wM80
>>492
ちゃんとコードを読んだら↓の部分はケアされてましたね。失礼しました。
> reallocの戻り値は古いポインタと異なるものになる保証はないはずなので、

ただ、reallocが成功したらfreeは呼ばなくていいのは間違いないと思います。
494デフォルトの名無しさん (ワッチョイ 25e8-AIHr)
2019/12/06(金) 00:50:56.12ID:j6TI2G0x0
>>490 のreallocのコード返り値のポインタが不定を指しているので、使わないでください。
こっちを使ってください。
https://qiita.com/yakitori32/items/98256db666029fb5ebca
495デフォルトの名無しさん (ワッチョイ 25e8-AIHr)
2019/12/06(金) 00:55:18.93ID:j6TI2G0x0
>>493
了解です。ありがとうございます。
496デフォルトの名無しさん (ワッチョイ 1563-FbR7)
2019/12/06(金) 01:07:01.79ID:Rsc9FZ2h0
>>489
超高速ビットカウント
でググって出てくるページでちゃんと解説してくれてる
この手のよく見るやつはちょっとググれば解説見つかる

何を本質と置くかによるけど両者はそもそもアルゴリズムが違うのでその観点からなら違う
どちらのコードも結果は同じでも前者のほうが圧倒的に処理速度が早い
ビット数などが必要になる処理では速度が重要になるケースも多々あるので結果が同じでも後者は使い物にならない場合もある
497デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 01:36:02.35ID:lGRN9wM80
>>496
レスありがとうございます。紹介していただいた記事を読ませていただき、大変勉強になりました。

ただ、>>489 の場合だと「ビットカウントするデータ列がある程度長い場合」には
当てはまらないため記事の前半の内容がアルゴリズムの基本になるとか思うのですが、
私が理解した範囲で記事の内容を参考にして関数を作成しても以下のようにしかできませんでした。

int popcount(unsigned long long x)
{
  x = (x & 0x5555555555555555) + (x >> 1 & 0x5555555555555555);
  x = (x & 0x3333333333333333) + (x >> 2 & 0x3333333333333333);
  x = (x & 0x0f0f0f0f0f0f0f0f) + (x >> 4 & 0x0f0f0f0f0f0f0f0f);
  x = (x & 0x00ff00ff00ff00ff) + (x >> 8 & 0x00ff00ff00ff00ff);
  x = (x & 0x0000ffff0000ffff) + (x >> 16 & 0x0000ffff0000ffff);
  return (int)((x & 0x00000000ffffffff) + (x >> 32 & 0x00000000ffffffff));
}

しかし >>489 の関数はこれを途中で打ち切って % 0xff をくっつけたような形になっており、
やはり完全な理解には至っていない状況です。
もし可能であれば、この部分についてもヒントをいただけると大変嬉しく思います。
たびたび申し訳ありませんが、どうぞよろしくお願いいたします。
498デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/06(金) 04:41:11.15ID:hd4ipDIZM
>>497
64ビット長のビットカウントの最大値はたかだか64なので8ビット(最大255)で表現できる
一方、64ビットデータの分割統治による畳み込み計算は1回目で2ビット×32組、2回目で4ビット×16組、3回目で8ビット×8組の結果が得られる
ビット数を求めるだけなら3回目の結果が得られた時点で8ビットの最大数(255)で3回目の畳み込み結果の剰余を求めてやればそれぞれの組の重み(ビット数)が計算できる
(64を超えることはないことが明らかなので)
499デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/06(金) 04:45:05.84ID:hd4ipDIZM
訂正
それぞれの組の重みの総計(ビット数)
500デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 05:11:25.02ID:lGRN9wM80
>>498
わかりやすいご説明どうもありがとうございます!ほぼ理解できたと思います。
たとえば十進数の123を十進数文字の最大値9で割った余りは
1+2+3と等しくなりますが、これと同じ原理ということですよね?

ただよくよく考えてみると、そもそも十進数の各桁の合計を9で割った余りが
元の数を9で割った余りと等しくなることについても
お恥ずかしながら豆知識として知っているだけで原理を理解できていませんでした。
ただこれに関してはもはやC言語ではなく算数の問題なので、
その方面の解説サイトをググって勉強しようと思います。
なにはともあれ、回答してくださった皆様方、どうもありがとうございました。


>>495
読みやすい記事を提供してくださっているので、もう少しだけコメントさせてください。

現状だと、MemoryReAllocateを呼び出す側は関数の成否を確認するために
Mem->Memoryを覚えておく必要がありますので、MemoryReAllocateの引数に
参照渡しを使われるならMemoryReAllocateの戻り値はMomeryではなくて
成否を表すboolなどにされてはいかがでしょうか。

また、reallocは第一引数としてNULLを許容しているので
MemoryReAllocateは入力のMem->MemoryがNULLであっても
Mem->ElementSizeが正しい値であれば正常に動作しますが、
その一方でMemoryAllocateは失敗するとElementSizeがゼロの構造体を
返すので少しアンバランスかなと思いました。

あと、MemoryFreeがboolを返すのであれば、freeの前にNULLチェックを入れて
その結果をMemoryFreeの戻り値としてもいいかなと思いました。
(free関数自体はNULLを渡しても何もしないだけで問題は起こりませんが)

以上お目汚し失礼しました
501デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 05:15:04.10ID:PFBD6caPd
1回進むごとに
2bitずつに区切って、1の数を各2bitに入れる
4bitずつに区切って、1の数を各4bitに入れる
8bitずつに区切って、1の数を各8bitに入れる
...

となるので
>>489だと各バイトの1の合計が、各バイトに入る

各バイトなので256バイトのテーブルを使う方法もある
チープなCPUだとこちらの方が速い

逆にリッチなCPUだと数える命令が最初から備わってたりするしベクタ化も可能

Icelake以降だとAVX512VBMIの命令を使って
超高速に64バイト分カウント出来る
502デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 05:24:05.53ID:PFBD6caPd
>>500前半
なんか違う

10進数の各桁に関しては
1000a+100b+10c+d
=999a+99b+9c+a+b+c+d
=9(111a+11b+c)+(a+b+c+d)

これを2進数でやると
9のところが1になるからあまり意味がない
503デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 05:33:31.46ID:PFBD6caPd
分割統治っていうより
レジスタ内の桁数を使ってSIMD演算してるって感じ

01020304 + 02040608

2桁ずつの4個の足し算になってるでしょ?
504デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 05:47:57.81ID:PFBD6caPd
vpsrld
vpermb
vpermb
vpaddb

AVX512VBMIを使うと
レジスタに値がある状態で
4命令で64バイト分
505デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 05:56:22.53ID:lGRN9wM80
>>501 >>504
レスありがとうございます。

> 各バイトなので256バイトのテーブルを使う方法もある
確かにある程度のビット幅ごとにテーブルを使って計算する方法は
シンプルですが効果が高そうですね。

> 逆にリッチなCPUだと数える命令が最初から備わってたりするしベクタ化も可能
> 4命令で64バイト分
勉強になります。本当に速さが必要ならCPU自体の理解から始めるべきなんですね。
このあたりのハードウェアの違いは標準ライブラリ関数が吸収してくれると最高なのですがw


>>502
10進数の話の数式どうもありがとうございます!大変勉強になりました。

そうすると、>>489 の popcount の最後にやっているのは
2進数というか0x100進数で、

0x1000000*a+0x10000f*b+0x100*c+d
=0xffffff*a+0xffff*b+0xff*c+a+b+c+d
=0xff*(0x01010x*a+0x0101*b+c)+(a+b+c+d)

ということになると思うのですがいかがでしょうか。
506デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 05:58:37.54ID:lGRN9wM80
>>505 の数式が変でした。正しくは以下のとおりです。失礼しました。

0x1000000*a+0x10000*b+0x100*c+d
=0xffffff*a+0xffff*b+0xff*c+a+b+c+d
=0xff*(0x010101x*a+0x0101*b+c)+(a+b+c+d)
507デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 06:20:08.91ID:PFBD6caPd
最後の % 0xff を見てなかった
なので各バイトの1の個数と勘違いしてました

>>506はその通り

%は、除算命令を使うと遅いので
コンパイラは
0x0101010101010101
との乗算とシフトに置き換えそうです

PCの64bit環境だとPOPCNT命令がそのまま1命令
Icelake以降だとVPOPCNTQで8個を1命令
で出来ます
508デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 06:24:24.02ID:PFBD6caPd
x % 0xff
よりは
x * 0x0101010101010101 >> 56 & 0xff
の方が直接的でコンパイラを頼らない記述でしょう
509デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/06(金) 06:34:20.70ID:hd4ipDIZM
それだと
剰余 x % 0xff
ではなくて
商 x / 0xff
510デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 06:36:33.62ID:PFBD6caPd
>>508 で大丈夫
乗算の筆算を考えてみよう
511デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 06:37:31.16ID:lGRN9wM80
>>507-508
レスありがとうございます。

> x % 0xff
> よりは
> x * 0x0101010101010101 >> 56 & 0xff
> の方が直接的でコンパイラを頼らない記述でしょう
コンパイラの最適化によって一行目が三行目に
置き換えられる可能性があるということですか!?
難しそうですがちょっと考えてみたいと思います。

> PCの64bit環境だとPOPCNT命令がそのまま1命令
> Icelake以降だとVPOPCNTQで8個を1命令
本当に速度を求めるならCPUの命令を直接使えということですね。
覚えておきます。
512デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 06:42:08.81ID:PFBD6caPd
>>511
コンパイラは普通、定数の除算は乗算に置き換えます
乗算、シフトは1クロック、除算は数十クロックかかるのが普通なので

ただ、
>>508 にまでは最適化されないかも
なので>>508の方が良いです
513デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 06:54:43.75ID:lGRN9wM80
>>512
ありがとうございます。そのようにしたいと思います。

ご親切に甘えてしまい申し訳ないのですが、
もう一つ質問させてください。今、
@ = x % 0xff

A = x * 0x0101010101010101 >> 56 & 0xff
について考えていたのですが、
x = 0xff のとき、
@ = 0x00, A = 0xffのように、別の値になりませんか?
これは、どこか書き間違いがあるとういことでしょうか。
それとも、この違いは今回の用途では問題にならないということでしょうか。
514デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 06:57:32.55ID:lGRN9wM80
>>512
立て続けにすみません。。。たった今理解しました。
「この違いは今回の用途では問題にならない」が正解ですね。
515デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 06:57:55.91ID:PFBD6caPd
除算命令、
Skylakeで最大90クロックだそうで...
簡単な命令だと1クロックで3〜4個実行出来る事を考えると劇遅ですね

Icelakeだと18クロックなので
改善されてるみたい
516デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 07:06:52.23ID:lGRN9wM80
>>515
> 除算命令、
> Skylakeで最大90クロックだそうで...
なんと!しかも、「最大」という表現が付くんですね。
つまり、ただの数値計算なのに
クロックの数がデータに依存する可能があるということ…?
517デフォルトの名無しさん (スプッッ Sd03-FAUo)
2019/12/06(金) 07:12:58.28ID:PFBD6caPd
>>516
除算命令の実行時間はデータに依存します
内部的にループしてるようなものなので

SIMDの除算は多分一定
Icelakeももしかしたら一定かもしれません

SIMD乗算も非常に小さな値だと遅い事があったような
518デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 07:35:33.29ID:lGRN9wM80
>>517
小さい値だと遅い!?
すみません、ハードウェアの知識がなさすぎて
タイプミスをされたのか本当にそうなのかの判断すらつかないです。。。
519デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/06(金) 07:55:08.53ID:DDupnuWl0
https://ja.m.wikipedia.org/wiki/%E9%9D%9E%E6%AD%A3%E8%A6%8F%E5%8C%96%E6%95%B0

ここの「性能問題」参照
浮動小数点演算の話ですので今回は関係ないです
520デフォルトの名無しさん (ワッチョイ 4dda-vpIn)
2019/12/06(金) 07:59:35.87ID:/1U5BHO/0
そりゃ並列処理できるような相互依存性の低い大量のデータでもあるならともかく
小さなデータ塊対象だとパック化やアンパック化する手間が掛かる分だけ
総合的にはSIMD使った方が遅くなるだろ
馬鹿となんとかは使いようと言うだろ
521デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/06(金) 08:10:43.32ID:DDupnuWl0
どこの誤爆か気になる
522デフォルトの名無しさん (スッップ Sd43-FAUo)
2019/12/06(金) 12:19:42.67ID:PPEOwhLkd
>>520
馬鹿がSIMD使うと遅くなる
それはそうかも
523デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 15:17:31.13ID:lGRN9wM80
>>519
勉強になります。
非正規化数という言葉はちらっと聞いたことはありますが、こういうデメリットもあるんですね。
そして、それでも非正規化数を使うのは
「浮動小数点数の加減算は決して『アンダーフローによるゼロ』にならない」
という理由があるのだということも初めて知り、とても興味深く感じました。


ところで、ビット演算に関してもう一つ相談させていただいてもよろしいでしょうか。

動的メモリ再確保のコストを減らすために確保するメモリのサイズを必ず 2ⁿ-1 の形にしたくて、
与えられた数を下回らない最小の 2ⁿ-1 の値の値を返すような関数を作って使っています。
つまり引数xを2進数で表したときの一番上位の1以下をすべて1に置き換えるような関数で、
具体的には以下のように記述しています。

int fill_lower_bits(int x)
{
  x |= x >> 1;
  x |= x >> 2;
  x |= x >> 4;
  x |= x >> 8;
  x |= x >> 16;
  return x;
}

この関数は割と使用頻度が高いので、PCの64bit環境にPOPCNT命令があるように、
もしfill_lower_bitsと似た振る舞いをする命令があれば名前を教えていただけないでしょうか。

(続く)
524デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 15:18:25.28ID:lGRN9wM80
(続き)
また、こちらはあまり使い道は思いつきませんが、

int fill_higher_bits(int x)
{
  x |= x << 1;
  x |= x << 2;
  x |= x << 4;
  x |= x << 8;
  x |= x << 16;
  return x;
}

という関数を考えることもできて、これなら

int fill_higher_bits(int x)
{
  return -(x & -x);
}

のように簡単な書き方に変更できます。
fill_lower_bitsについてもこういうテクニックがあればいいなと思っているのですが、
もし何かご存知であれば教えていただけると嬉しいです。
525デフォルトの名無しさん (スッップ Sd43-FAUo)
2019/12/06(金) 19:09:08.62ID:PPEOwhLkd
>>523
BSR命令といくつかの命令を組み合わせて出来ます
Cからだと _BitScanReverse64

>>524
x | -x
の方が良いと思います
526デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 19:33:49.52ID:lGRN9wM80
>>525
何度も本当にどうもありがとうございます。大変勉強になります。

> _BitScanReverse64
こんな命令があったとは!
この名前で検索したら、今まで知らなかった興味深いページがたくさんヒットしました。
ReverseじゃなくてForwardというのもあるみたいですが、
Forwardの方はマイナスを使う方法でも十分高速になりそうなので、
どちらが速いか検証してみようと思います。

> x | -x
確かに…。
ド・モルガンの法則で ~(x & ~x) が ~x & x に書き換えられるのはすぐに分かるのですが、
もしかしてそれと同じことがマイナスでもできるのでしょうか。
-x が ~x + 1 と同じになることは理解しているので、ちょっと考えてみたいと思います。
527デフォルトの名無しさん (ワッチョイ 23b9-QX1D)
2019/12/06(金) 19:53:04.32ID:lGRN9wM80
>>526
> ド・モルガンの法則

-(a & b) = -a | -b が成り立つかなと期待したのですが、
a = 0, b = 1 のときにつまずいてしまいました。

でも、>>525 に書いていただいた -(x & -x) = -x | x は間違いなさそうです。

こういう式の変形って、どこかテキストに載っていたりするのでしょうか。
528デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/06(金) 20:51:24.53ID:DDupnuWl0
自分で頑張って探すんです

~x
x-1
-x
&
|
^

これらを組み合わせれば
一番右のビット関連がいろいろと出来ます

???10000
に対して
11110000
11100000
00010000
00011111
00001111
これらを得る最小回数の演算を考えてみてください
529デフォルトの名無しさん (ワッチョイ a501-gDf/)
2019/12/06(金) 21:03:52.43ID:vzfmAUcv0
ド・モルガンと似た問題で、
「君たち2人は注意されないならば、君たち2人は私語を止めない」
の対偶、
「君たち2人が私語を止めるならば、君たち2人は注意される」
って矛盾にちょっと考えてしまったわ。
530デフォルトの名無しさん (ワッチョイ 2339-V35x)
2019/12/06(金) 21:07:30.59ID:BprTHIND0
x 注意される
o 注意された
531デフォルトの名無しさん (ワッチョイ a501-gDf/)
2019/12/06(金) 21:15:00.21ID:vzfmAUcv0
>>530
さすが、その通り。
532デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/06(金) 23:44:25.67ID:DDupnuWl0
>>523
メモリ確保やアクセスの時間に比べれば
サイズ計算の時間は無視出来る

ビット演算の趣味として楽しむ分には良いけど
普通にループでもパフォーマンスは変わらない

パフォーマンスが重要じゃないところ
(つまりほとんどの部分)は
移植性、見やすさ、工数、...
などが優先される

ということは知っておいた方が良いですね
533デフォルトの名無しさん (ワッチョイ 1563-FbR7)
2019/12/06(金) 23:51:44.77ID:Rsc9FZ2h0
分野によってはループや比較による分岐は遅すぎて使えないなんてことままあるよ
534デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/07(土) 00:10:26.85ID:n8phrA6e0
>>523の話
535デフォルトの名無しさん (ラクッペ MMa1-sSJf)
2019/12/07(土) 00:10:27.55ID:4NjUP+TJM
それは経験談?
それとも誰かからの受け売り?
536デフォルトの名無しさん (ワッチョイ e573-FAUo)
2019/12/07(土) 00:15:02.34ID:n8phrA6e0
動的メモリ再確保
のサイズ計算の話

オーダーnに対して係数の小さなオーダーlog nは無視して良い
って話
537デフォルトの名無しさん (ワッチョイ 4dda-vpIn)
2019/12/07(土) 01:14:15.17ID:kGPNKNyL0
ちょっと前にスレで騒がれていたフーリエ変換に関する話題

50年来の信号処理に関する謎が解かれる、逆高速フーリエ変換がついに一般化
https://fabcross.jp/news/2019/20191206_fast-fourier-transform.html
538デフォルトの名無しさん (エムゾネ FF43-MVf8)
2019/12/07(土) 19:02:43.91ID:Tn5G8ZSlF
解明って言うんか?これ
539デフォルトの名無しさん (アークセー Sxdf-bz61)
2019/12/14(土) 01:27:42.96ID:TU6i1yGkx
C言語というか、WindowsのCですが、
たとえば strcpyの lstrcpyと _tcscpyの違いは何なのでしょうか
前者は WindowsAPI、後者は VC++CRTという説明を見たのですがよくわからないのです
両者とも UNICODE(後者は_UNICODE) の有無で charとwchar_tを切り替えるようですが、どちらをどんな時に使用するのかが分かりません。
540デフォルトの名無しさん (ワッチョイ c612-wY8Q)
2019/12/14(土) 10:20:34.10ID:00Pm6Tju0
crtへの依存を減らせる分、常にlstrcpyを使えばいいと思うよ。lstrcpyは不正アクセスしたときに例外投げてくれるみたいだし。
自分なら依存減らす&安全性のためにstrncpyとwcsncpyを選ぶけど
541デフォルトの名無しさん (アークセー Sxdf-bz61)
2019/12/14(土) 23:23:03.56ID:ECY2395Ex
>>540
ありがとうございます。
539です。

今後は気をつけようと思いますが、過去に書いたコードは何ともいたし難く…orz
なぜ先に lstrcpyを見つけなかった 2014年のオレ…

でも、内容が古いのかもしれませんが、ある記事によると CRTの依存を断ち切るのも容易ではないようで。。。
542デフォルトの名無しさん (ワッチョイ 6261-drM2)
2019/12/15(日) 00:22:25.61ID:ay8KMh7A0
むしろlstrcpyなんて16bit時代から引きずってる過去の遺物なんじゃ?
今はlstrcpyも非推奨、代替のStringCchCopyはWindowsAPIの体だけどkernel32.dll等を呼び出すのではなくstrsafe.h内にコードが書いてある変わり種なのでtchar.h系の_tcscpy_sでよくね?っていう
543デフォルトの名無しさん (ワッチョイ 62ad-xO71)
2019/12/15(日) 00:32:33.51ID:YgrLaWOD0
MSのCは独自色が過ぎる
544デフォルトの名無しさん (ワッチョイ 4209-X5Um)
2019/12/15(日) 09:51:20.97ID:Q+saMC6e0
そうか? 古くからMSCは「高いが安心」というポジションだったが
545デフォルトの名無しさん (ワイーワ2 FFfa-uKDx)
2019/12/15(日) 13:16:36.84ID:o9m7qUoDF
放送大学2020新講座
C言語基礎演習
https://www.wakaba.ouj.ac.jp/kyoumu/syllabus/PU02060200221/initialize.do
546デフォルトの名無しさん (ワッチョイ ef46-2WMb)
2019/12/15(日) 14:57:55.02ID:AP8z1X7d0
何の変哲の無いコードを書いてコンパイラのバグが顕在化するMicrosoftのCが安心とは、茶がヘソを沸かす。
547デフォルトの名無しさん (ワッチョイ e7da-rL1a)
2019/12/15(日) 15:53:29.93ID:Rd0yTkco0
唯一のECMA-372対応コンパイラ
壮大なマッチポンプだが…
548デフォルトの名無しさん (ブーイモ MM13-R69Q)
2019/12/15(日) 23:21:27.87ID:z0zgGhJDM
そもそもCはUNIXの為に作られた言語だから
UNIX系以外のOSで使うと齟齬が出るよね
549デフォルトの名無しさん (ワッチョイ e202-F3ta)
2019/12/16(月) 09:15:32.91ID:poPvuM4I0
何言ってんだこのバカ
550デフォルトの名無しさん (スッップ Sd02-IG0a)
2019/12/16(月) 09:20:02.47ID:wmZohWX5d
せいぜい�nとCR LFの齟齬くらいだね
551デフォルトの名無しさん (ワッチョイ e7da-rL1a)
2019/12/16(月) 09:40:49.35ID:0Jl4Gkqp0
それはテキストファイルのコードの違いというだけであって言語の仕様そのものとは直接関係ない
552デフォルトの名無しさん (ワッチョイ 9769-kui+)
2019/12/16(月) 10:23:00.62ID:1+8Fi0A+0
OSを記述しやすく意図されて言語という認識だが
UNIXに絞って特化された部分って何だろう?
553デフォルトの名無しさん (ブーイモ MM13-RJaD)
2019/12/16(月) 10:34:38.41ID:WErHXUGxM
テキストファイルといえば
歴史上どっかの段階で文字列操作や汎用IO関数を捨て専用のもちっと使いやすい内蔵スクリプト言語に任せ
どうしても処理速度を求めるマは自作、非標準ライブラリで配列イジクール形にしたらよかったのにね

システムコールの頻度とか毎度読み解く指定子とかで標準ライブラリも爆速ってほどじゃないしー
printfのうじゃうじゃ増える非互換指定子とか似た使い分け迷う関数の増殖とかを防げたろうに
554デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/16(月) 11:27:10.48ID:LjjtFzBx0
せっかくライブラリとして言語の外に出てるのに、
なんでスクリプト言語なんか内蔵しなきゃいかんの。
555デフォルトの名無しさん (ドコグロ MM7a-ECc1)
2019/12/16(月) 12:29:48.70ID:3ha1TSe5M
>>552
creat()のモード指定が8進数で書ける
556デフォルトの名無しさん (ワッチョイ 4b5f-EbeN)
2019/12/16(月) 13:05:02.49ID:ErLMiOjL0
file の lock とかか >>552
557デフォルトの名無しさん (ワッチョイ 367c-xO71)
2019/12/16(月) 13:12:27.77ID:3bH+pT+k0
>>555-556
それはライブラリの問題ではないか。言語仕様とはちょいと違う気がする

まあ「標準ライブラリは言語仕様(キリッ」と言いきっちゃってもいい気もする
558デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/16(月) 13:19:15.38ID:LjjtFzBx0
たしかにunix系以外で8進数って使わないような気もする。
559デフォルトの名無しさん (ブーイモ MM13-0eUy)
2019/12/16(月) 13:21:15.05ID:k2txnuEDM
Cは文字列をヌル終端するのが「ほぼ」前提になってるよね。
もしそれ以外の文字列表現を使うつもりだったら、
文字列専用の型を用意していたし、ポインタより配列を重視していたはず。
560デフォルトの名無しさん (ワッチョイ 4b5f-EbeN)
2019/12/16(月) 13:22:41.90ID:ErLMiOjL0
>>557
おまいがOSに特化したとか言い出したんじゃないのか
561デフォルトの名無しさん (ドコグロ MM7a-ECc1)
2019/12/16(月) 13:23:58.45ID:3ha1TSe5M
>>557
違う、8進数で書けると言う「言語仕様」の話
562デフォルトの名無しさん (ワッチョイ 367c-xO71)
2019/12/16(月) 13:30:01.62ID:3bH+pT+k0
>>561
8進数でも書けちゃう
というだけで、建前としては「ちゃんと定数使え」じゃない?

言語仕様でUnix文化に特化してるところって
mainとreturnの仕様くらいじゃない?
563デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/16(月) 13:32:32.25ID:LjjtFzBx0
>>562
8進数で書くのがchmod互換で直感的なんだべ
564デフォルトの名無しさん (ドコグロ MM7a-ECc1)
2019/12/16(月) 14:13:38.79ID:3ha1TSe5M
>>562
> 建前としては「ちゃんと定数使え」じゃない?
建前はともかく0777とか0755とかバンバン書かれてるし…

とまで書いてなんだけど、ちょっとググったらどうも8進数はC言語発祥じゃなくてB言語でも使えたみたいw
PDPシリーズは触ったことないからよくわからんけどHPのミニコンは命令コードが3bit単位に区切られて表記されてた
ブートローダーは手入力してて16個並んでるスイッチでアドレスや命令コードをセットするんだけど見ての通り3bit単位に区切ってある
もう記憶があやふやだけどアセンブラとかも8進表記ができたような気がする
C言語なら俺に聞け 153 	YouTube動画>7本 ->画像>4枚
多分PDPも似たような感じだったんじゃないかと思う
なので8進数云々はあまり関係なかったわ、すまん
565デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/16(月) 19:57:33.47ID:xr9KOlE00
お前らも8進数よく使うだろ
0とか
566デフォルトの名無しさん (ワッチョイ 5701-kui+)
2019/12/16(月) 20:00:10.61ID:RwgS0BCD0
ソースの見栄えを気にして桁そろえに スペース使わずに 0 を補うんですね
567デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/16(月) 20:01:38.57ID:xr9KOlE00
やったことあるヤツいるよな?

いやそうじゃなくて
ただの0
568蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd02-jJp1)
2019/12/16(月) 20:18:50.99ID:8JsSimFSd
017は頭に0があるから、C/C++では8進数として扱う。ただのゼロもリテラルの分類としては8進数。
569デフォルトの名無しさん (ブーイモ MM13-ScWb)
2019/12/16(月) 20:23:36.65ID:KhG8vsdXM
0リテラルは8進だったのか…
570デフォルトの名無しさん (ブーイモ MM13-ScWb)
2019/12/16(月) 20:31:05.71ID:KhG8vsdXM
(6.4.4.1) octal-constant:
0
octal-constant octal-digit

まじか



でも8進だからなんだっていう
571デフォルトの名無しさん (ワッチョイ ef46-9Tqg)
2019/12/16(月) 21:43:34.71ID:G86pu5OQ0
16歳の僕でも酒が飲めるぞ。
飲める飲める飲めるぞ酒が飲めるぞ。
572デフォルトの名無しさん (ワッチョイ a363-aD55)
2019/12/16(月) 21:43:53.10ID:myVu/Iud0
え?割と有名な話では?
573デフォルトの名無しさん (ワッチョイ 421e-JUn5)
2019/12/16(月) 22:13:01.15ID:AI1GDY0I0
012 月はハロウィンで酒が飲めるぞ
飲める飲める飲めるぞ酒が飲めるぞ
574デフォルトの名無しさん (アークセー Sxdf-bz61)
2019/12/16(月) 22:28:43.33ID:SRFHZZ1hx
>>571
それは10進数でしょ
575デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/16(月) 22:44:38.36ID:xr9KOlE00
いや
14進数とか16進数だろ
576デフォルトの名無しさん (ワッチョイ 0e8c-r0mJ)
2019/12/17(火) 05:16:47.62ID:YPw71Sxa0
8進数いらない
577デフォルトの名無しさん (スッップ Sd02-IG0a)
2019/12/17(火) 07:03:39.66ID:KzMqUd+td
Cにも0bと桁区切り欲しい
578デフォルトの名無しさん (ワッチョイ fb73-xO71)
2019/12/17(火) 11:16:49.78ID:C7XZiRB60
512色カラーで使った。
579デフォルトの名無しさん (アウウィフ FF3b-EbeN)
2019/12/17(火) 12:28:51.79ID:rApV4krMF
int main()
{
return 0;
}
8進数ですほんとうにありがとうございました
580デフォルトの名無しさん (ワッチョイ af1d-3siJ)
2019/12/17(火) 18:33:08.01ID:x9hYOthl0
MinGWとUbuntuはどっちがいいですか?
581デフォルトの名無しさん (ワッチョイ e7da-rL1a)
2019/12/17(火) 19:26:43.19ID:PKHU1E440
何が?
582デフォルトの名無しさん (ワッチョイ 7735-c7hN)
2019/12/17(火) 23:43:40.20ID:FF2dVpsc0
Ubuntu
583デフォルトの名無しさん (ワッチョイ 62ad-xO71)
2019/12/17(火) 23:50:56.66ID:6pfYPcmc0
2進数表記が欲しい
584デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/18(水) 00:13:36.84ID:i+6d3gEf0
16進小数リテラルが欲しい
585デフォルトの名無しさん (ワッチョイ 0663-xO71)
2019/12/18(水) 00:16:26.43ID:AxZUQGgH0
>>584
加減乗除考えただけで頭痛くなりそうだ
586デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/18(水) 00:19:17.60ID:P8XWWN6i0
すんごく欲しいならプリプロセッサでも作ればいいんじゃね?
587デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/18(水) 00:19:24.08ID:i+6d3gEf0
人間が計算する必要は無いんだよ
588デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/18(水) 00:24:30.38ID:i+6d3gEf0
>>586
プリプロセッサで10進数にするの?
それじゃ何の為の16進リテラルかわからない

いずれ対応するから待つのみ
589デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/18(水) 00:34:01.93ID:P8XWWN6i0
プリプロセッサ作って言語を拡張とか、昔はけっこうあったけどな。
590デフォルトの名無しさん (ワッチョイ 0663-xO71)
2019/12/18(水) 00:36:26.05ID:AxZUQGgH0
昔は結構あったはずのものが、今は残ってないのだろう
591デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/18(水) 00:39:48.29ID:P8XWWN6i0
まあそれほど必要がないなら別にいいんじゃね。
IDEしか使わないならそういうことはやりづらいだろうし。
592デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/18(水) 00:52:36.68ID:i+6d3gEf0
誤差を無くす為の16進小数リテラルなのに
プリプロセッサで10進数に直すの?
593デフォルトの名無しさん (ワッチョイ 0e16-kGA4)
2019/12/18(水) 02:20:08.74ID:YAJfAYS50
ビットパターンを直接作って変数のアドレスに放り込むようにできないのかな。
それじゃリテラルじゃなくなっちゃうか。
594デフォルトの名無しさん (ワッチョイ c3f6-GBjH)
2019/12/18(水) 05:31:30.34ID:GlvGxt8T0
>>584
C++17に既にあるから、いずれ使えるようになりそう
>>585
普通に10進で書いた浮動小数点数とまったく同じ扱いなので心配無用
>>592
10進でDBL_DECIMAL_DIG桁あれば、元の値を再現できるはず(doubleの場合)
595デフォルトの名無しさん (スップ Sd22-IG0a)
2019/12/18(水) 07:36:57.59ID:PEFQbiIGd
>>583
C++14で0b使えるようになって
もう5年も経っているんだが
596デフォルトの名無しさん (ブーイモ MM13-ScWb)
2019/12/18(水) 08:17:07.53ID:4w0y1KxwM
>>595
スレタイみような
597デフォルトの名無しさん (ワイーワ2 FFfa-EbeN)
2019/12/18(水) 11:30:30.49ID:RQBBPl9vF
>>593
floatやdoubleとcharのunionにするやつか
598デフォルトの名無しさん (ワッチョイ 9769-kui+)
2019/12/18(水) 11:37:41.82ID:nuxI9nkU0
float や double のビットパターンが IEEE754 前提でごりごりっと…
599デフォルトの名無しさん (ワッチョイ 97e8-Zk2E)
2019/12/18(水) 18:15:23.76ID:G112g1QU0
C言語に欲しい機能は、関数オーバーライドとユニファイドコールシンタックス。
3つあったけど一個忘れた。

参照もいいな。

そんなアマチュアC++書きです。
600デフォルトの名無しさん (ワッチョイ 97e8-Zk2E)
2019/12/18(水) 18:16:48.77ID:G112g1QU0
あ、constexprもほしいねぇ。
601デフォルトの名無しさん (ドコグロ MMab-ECc1)
2019/12/18(水) 20:26:19.16ID:CdPazUY7M
C++をBetter Cで使えばいいだけじゃね?
602デフォルトの名無しさん (アークセー Sxdf-bz61)
2019/12/18(水) 22:11:10.32ID:xgw20G5ix
僕は inlineをサンタさんにお願いしよう…
603◆QZaw55cn4c (ワッチョイ 8247-uUlA)
2019/12/18(水) 23:09:07.24ID:tbeJyQYA0
>>602
inline と指定すればなにがあろうと inline に固執する執念深いコンパイラはありませんか?
604蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 5f01-jJp1)
2019/12/18(水) 23:13:25.96ID:Zo1XP6560
__inlineは非標準だが、つかえ(以下略)
605デフォルトの名無しさん (ワッチョイ 7773-2Nzf)
2019/12/18(水) 23:24:19.48ID:i+6d3gEf0
inlineを忠実に守ってたら
指数関数的にコードサイズが増える
606◆QZaw55cn4c (ワッチョイ 8247-uUlA)
2019/12/18(水) 23:59:36.80ID:tbeJyQYA0
>>605
それはコンパイラが判断することではなく、人間様が判断することなのでは?気分次第で inline にならない inline 指定なんて何の役にもたたないと思います
607デフォルトの名無しさん (ブーイモ MMbf-knCy)
2019/12/19(木) 00:13:43.37ID:S/u3JoW1M
ループ展開して中のinline関数をぶちまけたら・・・
命令の並べ替えで案外コンパクトに成るかもしれんし
指数は言い過ぎだと思うがね
608蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-FGNK)
2019/12/19(木) 00:38:42.38ID:6IXT8mCld
それまた非標準の__forceinlineというキーワード使えばインライン化を強制できる。
609デフォルトの名無しさん (ワッチョイ 977b-w6Xz)
2019/12/19(木) 06:50:23.98ID:rFEDNRgX0
>>599 名前空間オヌヌメ。
って言うか、なぜ急に自己紹介なんだろ?
610デフォルトの名無しさん (アウアウウー Sa5b-eVP7)
2019/12/19(木) 19:43:05.94ID:0uPukb6za
ついうっかり再帰する関数を inline にしてし(ry
611デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/19(木) 20:00:28.38ID:L7o4TfDh0
>>607
2箇所でコールする関数がn段ネストで2^n
612デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/19(木) 22:27:18.11ID:gVlfKsHk0
無限ループをインラインで展開
613デフォルトの名無しさん (ワッチョイ 9fad-YiuP)
2019/12/20(金) 01:47:19.47ID:28sCejNS0
無限ループってこわくね?
614デフォルトの名無しさん (ワイーワ2 FFdf-hPjh)
2019/12/20(金) 12:03:42.85ID:Syf6RG7EF
>>613

615デフォルトの名無しさん (ワッチョイ ff02-65x4)
2019/12/20(金) 12:40:59.27ID:QFt1HgPu0
だって同じことがずーっと続くんだぜ
616デフォルトの名無しさん (アウアウウー Sa5b-eVP7)
2019/12/20(金) 21:46:42.87ID:BqL6wPJ0a
真の無限ループは作れない。
コンピュータは何れ壊れるし停電になったら終わりだからな。
617デフォルトの名無しさん (ワッチョイ b763-CWbB)
2019/12/20(金) 21:52:00.56ID:qHTdS2+z0
真の無限ループを現実的に実行することができない≒無限を観測することはできない
概念としては作れる
618デフォルトの名無しさん (ブーイモ MMfb-d8CF)
2019/12/20(金) 22:56:52.61ID:zqOycIcFM
物理屋対数学屋
619デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/20(金) 22:59:48.75ID:ZH5ZbPnE0
「真の」
っていう表現がマズい
620デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/20(金) 23:54:20.86ID:Rn/41Zwx0
10 Print ”A"
20 Goto 10
621デフォルトの名無しさん (ワッチョイ f795-r9Jq)
2019/12/21(土) 07:09:12.38ID:JN5BZbCP0
b .
622デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/21(土) 13:38:12.07ID:MR+KFog00
っ ノンボラタイルメモリ。
623デフォルトの名無しさん (ワッチョイ d71d-1ZZR)
2019/12/22(日) 02:30:50.40ID:LaRPFE2v0
goto文は危険なんですか?
624デフォルトの名無しさん (ワッチョイ 571a-prDO)
2019/12/22(日) 02:40:48.07ID:gUOFz5Ze0
あぁ、実に危険な話題だ。
625デフォルトの名無しさん (ワッチョイ 9fad-v8Vi)
2019/12/22(日) 02:44:33.39ID:lBW/6Z3k0
>>617
そう。つまり、心の中にあるのさ。
626デフォルトの名無しさん (ワッチョイ 9fad-prDO)
2019/12/22(日) 02:51:43.79ID:lBW/6Z3k0
goto は技を極めた者だけが使うことが許される。半端な者が手を出せばおかしなことにしかならない。
627デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/22(日) 02:56:36.50ID:gKJY07Bh0
>>623
用法用量を守って正しくお使いください。
628デフォルトの名無しさん (ワッチョイ ffa6-r9Jq)
2019/12/22(日) 07:27:17.21ID:DuLbamX70
gotoのなにがいけないのかを知らない者は
スペルがジーオーティーオーでないgotoを平気で使いながら
頓珍漢な教条主義を得意げにぬかす
629デフォルトの名無しさん (ワッチョイ d746-5DI4)
2019/12/22(日) 08:27:39.32ID:OI05XeSt0
>>628
> スペルがジーオーティーオーでないgoto
wakaran
630デフォルトの名無しさん (ワッチョイ 9f01-fd2f)
2019/12/22(日) 08:31:28.88ID:4GpMlcpo0
> goto文は危険なんですか?
ああ、とてつもなく危険だよ
こんなことを聞くような>>623にとってはな
631デフォルトの名無しさん (ワッチョイ ffa6-r9Jq)
2019/12/22(日) 08:35:46.34ID:DuLbamX70
>>629
ISO/IEC 9899:2018 6.8.6 Jump statements
632デフォルトの名無しさん (ワッチョイ d746-5DI4)
2019/12/22(日) 10:21:23.25ID:OI05XeSt0
>>631
goto文以外のジャンプ・ステートメントとハナから書きなされ。
というか、goto文を乱用せずcontinue、break等で代用しなさいという教条だべ。
ジーオーティーオーでないgotoを平気で使うのは教条に反しないので、「ながら」と矛盾を指摘する言い方はおかしい。
633デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/22(日) 10:24:59.48ID:sxycti0t0
悪魔を召喚する呪文
634デフォルトの名無しさん (ワッチョイ 9fc5-+Tiu)
2019/12/22(日) 12:02:27.27ID:assBvK1w0
人生:
if (!就職()) goto 人生;
635623 (ワッチョイ d71d-1ZZR)
2019/12/22(日) 14:03:45.29ID:LaRPFE2v0
でも俺スパゲッティは嫌いじゃありません
636デフォルトの名無しさん (スップ Sdbf-FIDi)
2019/12/22(日) 16:32:40.91ID:BbprGibXd
>>632
そんなにダイクストラらの主張の論点が何かが分かってないのを誇張して何がしたい?
637デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/22(日) 16:45:52.25ID:qJChSMJU0
いやー、上方へのジャンプを抑制するだけで結構切れますよ?
638デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/22(日) 16:47:16.93ID:qJChSMJU0
L:
hogehoge();
if(huga)gotoL2;
if(hage)goto L;
L2:
639デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/22(日) 16:48:43.49ID:qJChSMJU0
キーコンビネーション間違えて投稿してしまった。
>>638 のようなコードは完全にスパゲッティなのでやめましょう。
640デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/22(日) 16:51:13.34ID:qJChSMJU0
do{
continue;

}while();

while型goto教の教義のコード。
641デフォルトの名無しさん (スップ Sdbf-FIDi)
2019/12/22(日) 16:57:49.51ID:BbprGibXd
制御構造のパターンとして何型のものが望ましくないのか、お前ら本当に聞いたこともないの?
642デフォルトの名無しさん (ワッチョイ 97e8-Rp4x)
2019/12/22(日) 16:59:01.86ID:qJChSMJU0
安易な無限ループで悲惨なオチに出会う人減ってるかいな?
643デフォルトの名無しさん (ワッチョイ bf8c-vyMa)
2019/12/22(日) 20:25:06.85ID:o2lyx4Qb0
局所でGOTOは有りだろう。
644デフォルトの名無しさん (ワッチョイ bf8c-vyMa)
2019/12/22(日) 21:00:22.05ID:o2lyx4Qb0
全部論理式で書けば制御構造なぞ要らない。
645デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/22(日) 21:06:07.06ID:Gm1dEDWR0
アホばっかりと諦めるのはまだ早いと思う
短気を起こさずにもうしばらく待ってみる
646デフォルトの名無しさん (ワッチョイ 9fad-prDO)
2019/12/22(日) 23:20:31.02ID:lZWETk/y0
>>643
あり
むしろ使わないと階層が深くなったり、フラグを多用したりで余計おかしなことに
647デフォルトの名無しさん (ワッチョイ d71d-1ZZR)
2019/12/23(月) 00:35:00.92ID:5fq76TYI0
bool型の変数をprintf関数内でプレースホルダ%dを使って表示すると、
1や0になってしまうのですが、trueやfalseの形式で表示できないでしょうか?
648蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 5701-upP4)
2019/12/23(月) 00:38:21.07ID:EBKfcFlm0
printf("%s", (b ? "true" : "false"));
649デフォルトの名無しさん (ワッチョイ d7f9-+Tiu)
2019/12/23(月) 00:38:26.58ID:+NV+2UGP0
%sでboolVar ? "true": "false"とでもすればいい

Cにboolはないよ
650デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 00:45:41.74ID:Losi+wwQ0
>>649
どアホ
ISO/IEC9899:2011 7.18
2 The macro
bool
expands to _Bool.
651デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/23(月) 00:52:11.44ID:hXczb3NL0
C99を (標準の)C と呼んでも差し支えないのだろうか
652デフォルトの名無しさん (ワッチョイ 9f79-+Tiu)
2019/12/23(月) 00:56:54.61ID:+xS4b3+d0
最新の規格が標準だぞ
C99が定められたのは既に20年前
太古の企画と言っても差し支えないレベル
653デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/23(月) 01:06:18.68ID:z7fGiGkq0
>>652
お前が勝手に決めるな
654647 (ワッチョイ d71d-1ZZR)
2019/12/23(月) 02:34:41.48ID:5fq76TYI0
答えてくれた方ありがとうございました
面倒なんですね
655デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 07:25:48.16ID:Losi+wwQ0
>>653
決めているのはISOで
652が勝手に決めているわけではない
現行規格すなわち標準はISO/IEC9899:2018、通称C17だ
https://www.iso.org/standard/74528.html
656デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 07:26:35.49ID:Losi+wwQ0
旧規格は現行規格の発効をもって廃止となる
657デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/23(月) 07:48:32.88ID:z7fGiGkq0
https://ja.m.wikipedia.org/wiki/ANSI_C

ANSI C、ISO C、または標準Cとは、米国規格協会(ANSI) および国際標準化機構(ISO) が発行したC言語の標準の総称である。歴史的にこれらの名前は特に、オリジナルであり、最もサポートされているバージョンであるC89およびC90のことを指す。
658◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/23(月) 07:50:11.10ID:GiJKkL8M0
C99 later の C++ 非互換部分は、どうでもいいとおもいますね
C++ にあわせて欲しかったのですが、独自色を強めてしまったのは疑問手です
659デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 08:11:06.15ID:Losi+wwQ0
現実問題でもC89オンリーのコンパイラはかなり減ってきてるだろうが
Cライクな非標準全開のコンパイラなら今でもあるが
660デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/23(月) 08:18:44.36ID:z7fGiGkq0
普及率を根拠にするなら
>>652を取り消してからにしてもらおうか
661デフォルトの名無しさん (ワッチョイ 977b-w6Xz)
2019/12/23(月) 08:29:28.17ID:hJXMwG4B0
>>647 の質問への直接の答えじゃないけど、
bool(実体は_Bool)型って汎整数拡張の対象だっけ?

拡張されるならprintfの中では引数がbool値だったか整数値だったか、
もう区別がつかないんじゃないか。
区別できなきゃ 0/1 で表示すべきか false/true で表示すべきかも
決められないと思うんだけど。
662デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 08:32:48.54ID:Losi+wwQ0
>>660
たとえ652をボコボコにやっつけたところで
現実は何一つ覆りはせんぞ
無駄な抵抗はやめろ
663661 (ワッチョイ 977b-w6Xz)
2019/12/23(月) 08:40:36.25ID:hJXMwG4B0
可変個引数の整数値が char でも short でも int になるのは
「汎整数拡張」とは違う動作、別の用語だったかも知れん。
言語に詳しい人の指摘をお願いしたい。
664デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 08:50:19.46ID:Losi+wwQ0
promotion(拡張)
665デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/23(月) 13:42:09.95ID:hXczb3NL0
https://ja.wikipedia.org/wiki/C99

>GCC、Clang、Intel C++ Compiler 等はC99の新機能の大半をサポートしている。
>ただし、GCCは、ほとんど準拠しているが、規格への100%完全準拠は果たしてい
>ない。GCC 4.x までのデフォルトは C89 に GNU 拡張を加えた -std=gnu89、
>Clang のデフォルトは C99 に GNU 拡張を加えた -std=gnu99 である。GCC 5.0
>から C11 に GNU 拡張を加えた -std=gnu11 がデフォルトになる。

>Microsoft Visual C++ は 2013 から C99 の大半を実装した。ただし、tgmath.h
>や snprintf() などが未実装。

>Open Watcom C compiler は標準のうち最もよく使われている部分を実装している。
>かつては、ドキュメント化されていないコマンドラインスイッチを指定しないと
>有効化されなかった。2010年現在の最新版である 1.9 では -za99 オプションを
>付けることで有効化される旨、明記されている。

>Sun Studioは、サン・マイクロシステムズによればC99を完全にサポートしている。

主なコンパイラは大体対応している様だが、まだ完全ではないみたいだ。
GCCだと独自拡張もあるのでややこしそう。すでにC11に向かっているし。
666デフォルトの名無しさん (スップ Sd3f-x674)
2019/12/23(月) 14:59:43.87ID:rvIcRY54d
今時Cを使うのって
そういうメジャー所じゃなくて
小規模マイコン用の独自コンパイラがメインでは?

そうでもない?
667デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 15:35:31.75ID:Losi+wwQ0
メジャーなところで旗色が悪くなったからって
マイナーなところへ逃げ込む気か
相手すんの馬鹿らしくなるぜ
668デフォルトの名無しさん (ワッチョイ 17da-isjD)
2019/12/23(月) 15:43:24.53ID:c0dHMUCB0
規格を捏ねくりまわして喜んでいるのは言語マニアだけだしな
実際の現場は殆どが独自コンパイラ
669デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 15:50:57.95ID:Losi+wwQ0
捏ねくりまわすって、工業製品を使って工業製品を産み出すのに
規格票を確認するのは工業人の当たり前の日常だろうがよ
670デフォルトの名無しさん (ワッチョイ 17da-isjD)
2019/12/23(月) 15:54:46.80ID:c0dHMUCB0
頭でっかちの老害
671デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 16:01:57.23ID:Losi+wwQ0
筋の通らんガキの駄々こねそのものだな
672デフォルトの名無しさん (ワッチョイ 17da-isjD)
2019/12/23(月) 16:12:34.32ID:c0dHMUCB0
必要なのは規格よりもコンパイラ製造元のマニュアルだ
規格は実際の動作を保証してはくれない
673デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 16:29:00.49ID:Losi+wwQ0
コンパイラのマニュアルも必要だが
規格「よりも」という変なバイアスは無用
「と」だろうが
674デフォルトの名無しさん (スップ Sd3f-x674)
2019/12/23(月) 18:06:56.36ID:rvIcRY54d
テンプレに入れた方がいいな
特に断りがない限りはC89/C90が前提だって
675デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 18:19:44.32ID:Losi+wwQ0
却下
それこそ老害以外の何ものでもない
676デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/23(月) 18:23:01.96ID:z7fGiGkq0
100歩譲ってC99
C17やC20限定の話題は他にスレを立ててそっちでやって
677デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/23(月) 18:23:59.39ID:hXczb3NL0
老害でない人たちは、C99スレでも立ててそこに移動で
678デフォルトの名無しさん (ワッチョイ 9769-mhYo)
2019/12/23(月) 18:37:06.44ID:CGp0hW9r0
bool 型があったとしても、
printf の引数(... で受ける) に渡すタイミングで暗黙に数値化しちゃうんじゃないかな?

C++での引数型により別のものが呼ばれる機構は期待できない部分
679◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/23(月) 19:24:17.92ID:GiJKkL8M0
>>674
それは名案ですね、正直言って C89=K&R2 で必要かつ十分ですし、C99 になって追加されたことといえば C++ と均整のとれない糞仕様が多くて役に立つものは一つか二つか…
680◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/23(月) 19:49:25.53ID:GiJKkL8M0
>>663
たしかに規格ISO/IEC9899:1999 のどこにあるか?というと、ちょっとみつからないですね
default argument promotion とはいうみたいですが
これは char, short -> int
float -> double
だったかと
681◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/23(月) 20:06:06.16ID:GiJKkL8M0
>>675
ジジイ、ジジイか…
それじゃお前はなんだ、この餓鬼が
おれはお前さんがこの世に落っこって来る前からバグつくってんだ
682デフォルトの名無しさん (ブーイモ MMfb-gy34)
2019/12/23(月) 21:14:46.40ID:X1aPCWn8M
シニア専用C言語スレでも作れば
683◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/23(月) 21:31:36.89ID:GiJKkL8M0
>>682
ジュニア専用お子ちゃまC言語は他所でおねがいします
684デフォルトの名無しさん (ワッチョイ ff70-r9Jq)
2019/12/23(月) 21:33:00.29ID:Losi+wwQ0
gotoの何がいけないか説明できるやつ、ここまでゼロ
685デフォルトの名無しさん (ワッチョイ ff12-gy34)
2019/12/23(月) 21:52:10.47ID:YCEz+SRJ0
年取ると新しいことが覚えられないのは理解するよ。
だからって30年前の規格で縛るとかどんだけおつむ弱いんだよ
686デフォルトの名無しさん (ワッチョイ 9f01-fd2f)
2019/12/23(月) 21:54:45.06ID:8K/Z1PN30
まだgoto文とか言ってるのか
認知症かよw
687デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/23(月) 23:05:23.85ID:hXczb3NL0
30年経ってもまだ対応完了しないコンパイラがある件
688デフォルトの名無しさん (ワッチョイ ff12-gy34)
2019/12/23(月) 23:28:22.45ID:YCEz+SRJ0
そらあるだろうさ。だからスレも底辺コンパイラに合わせろとか頭腐ってるんじゃねーの?
689デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/23(月) 23:42:25.45ID:hXczb3NL0
上級国民用のC言語スレを建てて,そちらに移った方が良いのでは?w
690デフォルトの名無しさん (ワッチョイ 9fad-YiuP)
2019/12/24(火) 01:55:10.60ID:DYebt3JD0
>>681
(若さは)重要な要素だ
691◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 05:45:35.87ID:Kb/HLSFP0
>>685
C++ でコンパイルできない C なんて何の役に立つのか疑問だ、といっているのですよ
692◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 05:52:12.01ID:Kb/HLSFP0
>>690
若さ若さとひけらかすな!
693デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 07:01:44.07ID:Uve8u0PJ0
>>691
じゃあC++使えばいい
C++コンパイラでC非互換の機能を使わない縛りこそ
何の役にも立ちゃしねえ
それをやるやつも役立たず
694デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 07:03:32.05ID:Uve8u0PJ0
積集合なんかいいとこ取りの逆だ
695デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/24(火) 07:04:40.49ID:cUFUrp770
ほんそれ
C++を覚えてさっさとこのスレからいなくなってくれ
ガキんちょは
696デフォルトの名無しさん (ブーイモ MMfb-gy34)
2019/12/24(火) 08:24:53.44ID:DYV/RLXmM
>>691
公開ヘッダだけ互換で書いとけばいいだろマヌケ
697デフォルトの名無しさん (ワッチョイ 9f79-+Tiu)
2019/12/24(火) 13:32:50.89ID:nbxHNYps0
C言語環境には色々と障害が多いが
その最たるものの一つが老害の多さだとこのスレを見てもよく分かる
698デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 13:37:43.29ID:Uve8u0PJ0
そもそもC89とC17の違いがそんなに問題になるか?
C89さえ分かっていればC17を差分で憶えるのは大した話じゃない
不勉強なやつが自己弁護のために騒いでるだけだろうが
699デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/24(火) 14:54:32.55ID:4UlhXCkA0
勉強家はC++に移られたらどうか
貴重な人生を無駄にしないで済む
700デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 16:09:31.88ID:Uve8u0PJ0
もちC++も使ってるよ
C使いが他の言語をやってないという仮定がそもそもおかしいぜ
701デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/24(火) 16:17:11.27ID:4UlhXCkA0
勉強家はこのスレに入らないから,さっさと移動したらどうか?
粗大ゴミしかいないスレなんだから,こんな所に居続ける必要ないだろ
お前自身が粗大ゴミだと自覚しているなら仕方がないが
702デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 16:30:12.41ID:Uve8u0PJ0
うるせえな
どこのスレに来ようが貴様に口だしされる筋合いはない
703デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/24(火) 16:44:50.65ID:4UlhXCkA0
荒らしたいって事?
704デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 16:45:57.75ID:Uve8u0PJ0
脈絡ねえこと言ってんなよ
705デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/24(火) 17:10:39.49ID:4UlhXCkA0
特定の話題で話したいなら,そういうスレを見つけるか、無ければ作れば良いんだよ
C言語全般を話題にする既存のスレを荒らす必要がこれっぽっちもない
706デフォルトの名無しさん (ドコグロ MMdf-fd2f)
2019/12/24(火) 17:25:45.59ID:obM24HmuM
そもそも
> 粗大ゴミしかいないスレなんだから
なんて言ってる>>701が荒しだろ
元々は質問スレだぞ
707デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/24(火) 17:30:04.53ID:4c603ABM0
>>705
C言語全般を話題にするスレと言ってる奴がC99は別スレに行けとか言ってたのだから、支離滅裂ダナー
708デフォルトの名無しさん (スップ Sd3f-x674)
2019/12/24(火) 17:52:25.07ID:vOfEkls8d
C言語は
非常にチープな環境でも動く
低レベルな記述が可能
非常に多くの環境で動作する
コンパイラの作成が容易

ということで未だに多くの場所で使われている
これらのメリットを減らす拡張は不要

これらのメリットが不要な環境ではC言語は不要
C++や、よりリッチな言語を使うべき
709デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 18:11:41.28ID:Uve8u0PJ0
もうゴテゴテつけんなよ、という意見には賛成だ
710◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:19:52.82ID:Kb/HLSFP0
>>693
>C++コンパイラでC非互換の機能を使わない縛りこそ何の役にも立ちゃしねえ
K&R2 の範囲で書くことができるというのは必須の技能だと思いますよ、それができない、そもそもなにが K&R2 の範囲でなにがそうではないかを知らないようでは馬鹿と謗られてもしかたがない
711◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:20:21.71ID:Kb/HLSFP0
>>696
kwsk
712◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:26:03.59ID:Kb/HLSFP0
>>698
>C89さえ分かっていればC17を差分で憶えるのは大した話じゃない

そのとおり

できる奴にとっては、C99 だろうが C11 だろうが C17 だろうが、どれも大差がなく自由に行き来できるしどうでもいい
しかし、ここで敢えて「C89=K&R2 こそ正義」と煽ってみると、案外「老害死ね」という反応が続出する
そういう点から推察するところでは、このスレに出入りする人間の 50% は K&R2 すらわかっていないレベルではないだろうか、と考えさせられるのですよ
713◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:29:06.28ID:Kb/HLSFP0
>>708
ライブラリとして、他の言語から直に呼んで貰うことを目指すため、C で書き直してしまうという話もよく聞きます、この手の用途を他の言語で聞いたことがない
714◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:34:23.41ID:Kb/HLSFP0
>>692
我々がしているのはヌルポインタの話だ
ただ 0 と書けば済む話のものに誰がタイプ数をつぎ込む?
まして #define NULL (void *)0 と構えて運用するようなものじゃない
マクロ NULL が存在すること自体なにかの間違いなのだ
715デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/24(火) 18:47:31.01ID:Uve8u0PJ0
>>710
K&R2の範囲で書くという具体的な案件を1つでも知っているか?
俺も含め、その案件に携わることになったとして困る者は極めて少数だと思うぜ
50%もいるようには全く思わない

K&R1の案件でさえ、今の若いのでもすぐ慣れるだろうさ
716◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:51:57.03ID:Kb/HLSFP0
>>715
そうですか
そのわりには、「老害死ね」という反応がかまびすしいですね
717蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 5701-upP4)
2019/12/24(火) 18:52:26.57ID:4kM/Vj6H0
>>714
整数とポインタのサイズが違うとき、NULLがないと大変なことになる。
718◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/24(火) 18:55:16.45ID:Kb/HLSFP0
>>717
可変長引数関数に (void *)0 を渡すときだけは (void *)0 は必要ですが、それ以外は 0 と書いてそれがポインタか整数かは文脈で判定できると思っています
719デフォルトの名無しさん (ワッチョイ 571a-prDO)
2019/12/24(火) 19:09:32.87ID:wOhZrnY70
>>717
ん?可変長引数とか、整数とポインタが曖昧なところでは NULL にもキャスト要るし、
NULL がサイズ違いとか動作上の問題を解決することなんてないのでは?
http://www.kouno.jp/home/c_faq/c5.html#4
720デフォルトの名無しさん (ワッチョイ ff02-65x4)
2019/12/25(水) 05:49:06.65ID:7G8eDwRY0
> ただ 0 と書けば済む話のものに誰がタイプ数をつぎ込む?
というわけで if(x != 0) じゃなくて if(x) だな
721デフォルトの名無しさん (ワッチョイ f773-prDO)
2019/12/25(水) 07:47:40.10ID:z2z2eZOK0
プロジェクトリーダー「数字直接記入禁止!全部#define で置き換えろ!」
大昔そんな事があったと聞いた。
722デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/25(水) 08:01:19.10ID:LrSoTBV60
あった
フラグを一個も立って無いことを示す0もdefine
デバイスの特性を多項式近似した関数も
各係数を全てdefine
縦と横のそれぞれの座標計算、ループで処理にした方が記述が簡単なので2でループしたら
その2もdefine

他にも意味不明のコーディング規約が多数
723デフォルトの名無しさん (アウアウウー Sa5b-YiuP)
2019/12/25(水) 08:32:20.25ID:oGSLd7g6a
それもこれもマジックナンバーにコメント書かなかったおまいらが悪いんやで
724デフォルトの名無しさん (ワッチョイ 9f52-1WEo)
2019/12/25(水) 08:34:25.12ID:mNtkopg10
マジックナンバーの何がいけない、どういう場合にどんな問題があるかを理解しないまま、杓子定規にルールだけ覚えるとそんな奴が出来上がるな。
725デフォルトの名無しさん (ワンミングク MM7f-XIG2)
2019/12/25(水) 08:51:06.27ID:gNbuW8hwM
>>721
> プロジェクトリーダー「数字直接記入禁止!全部#define で置き換えろ!」

良いと思うよ!!
726デフォルトの名無しさん (ワッチョイ 7f7c-prDO)
2019/12/25(水) 09:53:45.40ID:WMMCG2Dq0
値まで書いたアホっぽい定数 はわりと使うかな・・・

#define EGGCOUNT30 30
みたいに書いちゃうやつ

コード中に即値書きたいけど書くとリファクタリングで死ぬから
リファクタリングのためだけに定数書いてる感じ
727デフォルトの名無しさん (アウウィフ FF5b-hPjh)
2019/12/25(水) 10:17:23.56ID:2ymVLaRcF
当たり前だがリファクタリング以前に定数調整だけで死ぬぞ
#define EGGCOUNT 30
なら
#define EGGCOUNT 40
で済むのに

#define EGGCOUNT30 30
だと
#define EGGCOUNT40 40
で全置換する気か
728デフォルトの名無しさん (ワンミングク MM7f-XIG2)
2019/12/25(水) 10:24:47.96ID:gNbuW8hwM
s/30/40/g
は基地外沙汰だが
s/EGGCOUNT30/EGGCOUNT40/g
ならイケそうかも!!
729デフォルトの名無しさん (ワッチョイ 9769-mhYo)
2019/12/25(水) 13:00:30.03ID:KFffpDzg0
フォーマット文字列中のも駄目なんかな
少数以下 3桁に整えるのに "%.3f" → "%.*f" にして引数で渡す
730デフォルトの名無しさん (ワッチョイ 9769-mhYo)
2019/12/25(水) 13:08:29.51ID:KFffpDzg0
ああ フォーマット文字列を define しろということか
#define FORMAT "%.3f"
 :
sprintf(buf, FROMAT, double_value);
みたいな
731デフォルトの名無しさん (スッップ Sdbf-x674)
2019/12/25(水) 13:12:39.59ID:wMqEADXhd
>>727
数値一通りdefineして
NUM_56
みたいに数値のかわりに使う

糞コーディング規約の典型

そういう環境だと
大抵defineの数値を変えるだけじゃまともに動かない
732デフォルトの名無しさん (スッップ Sdbf-x674)
2019/12/25(水) 13:18:43.41ID:wMqEADXhd
>>730
文字列リテラルをコード中に記述禁止
その為itoaみたいなのを組み合わせたコードが出来る
733デフォルトの名無しさん (ワッチョイ 7f7c-prDO)
2019/12/25(水) 13:45:41.90ID:WMMCG2Dq0
>>727
そのとおり、全置換をする前提なんよ

置換するのはIDEのお仕事だから漏れは無いと信頼してるし、なにより
ソース改変による影響範囲の割り出しとテストしなおしの強制を兼ねてる
734デフォルトの名無しさん (ワッチョイ ff63-prDO)
2019/12/25(水) 13:50:36.68ID:V0IDAf7x0
エディタの正規表現は使わないのか?
複数パターンでも一回で出来ると思うが
735デフォルトの名無しさん (ワッチョイ 9f2c-1ZZR)
2019/12/25(水) 14:28:39.98ID:ZI663GBY0
>>720
MISRA-C の違反!

if(条件式) には、実質的なbool 値のみを書く!

ただし、if( x ) で、x がbool変数なら、OK
736デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/25(水) 14:58:33.15ID:HhfzRslS0
x != 0 も bool ではないんだが
737735 (ワッチョイ 9f2c-1ZZR)
2019/12/25(水) 15:17:44.07ID:ZI663GBY0
x != 0
は、yes/no の2値しかないでしょ?

実質的には、bool 値として使っている
738デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/25(水) 15:25:44.58ID:HhfzRslS0
それはおまえの思い込み

ISO/IEC 9899:2011
6.5.9 Equality operators
3
Each of the operators yields 1 if the specified relation is true and 0 if it is false.
The result has type int.

これが事実だ
739デフォルトの名無しさん (ワッチョイ bf8c-vyMa)
2019/12/25(水) 16:13:24.55ID:xjd+p9Q20
直接コードを書くことを禁止する。スクリプトを使って書け。
740デフォルトの名無しさん (スッップ Sdbf-x674)
2019/12/25(水) 16:42:27.57ID:wMqEADXhd
BOOL
YESNO
OKCANCEL
ONEBIT

実質的にboolなら中身はdoubleでもenumでもint64_tでもifに入れて良い
っていうコーディング規約
741735 (ワッチョイ 9f2c-1ZZR)
2019/12/25(水) 16:42:38.50ID:ZI663GBY0
文法は関係ない。
あくまでも、コードの品質・可読性を上げるための、MISRA-C のルール!

if, while などの条件式には、実質的なbool 値しか書けない

条件式に、単なる整数などを書けない。
整数の0 を偽とみなした、条件判断を書けない

MISRA-Cを守っていないと、低品質で、審査に通りませんよと言うことw
742デフォルトの名無しさん (アウアウウー Sa5b-1WEo)
2019/12/25(水) 17:03:05.94ID:TfD43SqCa
>>741
よそのスレでRuby基地外っぷりを発揮してさんざん迷惑を掛けているお前がルール遵守を説くなんて、羞恥心はないのか?
743デフォルトの名無しさん (ワッチョイ 9769-mhYo)
2019/12/25(水) 17:09:20.32ID:KFffpDzg0
if (x) → if (!!x) かにゃ?
744デフォルトの名無しさん (アウウィフ FF5b-hPjh)
2019/12/25(水) 18:22:33.85ID:2ymVLaRcF
>>735
if(!!x)
745デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/25(水) 19:13:54.17ID:LrSoTBV60
まともなルールと仮定した場合

>>735 がダメなら
>>743 >>744 もダメだろうな
746◆QZaw55cn4c (ワッチョイ 9f47-lwDA)
2019/12/25(水) 19:56:23.47ID:Fvp/Fpps0
>>741
また MISRA ですか…
MISRA 適合かどうかを診断してくれるプログラムでも配布してくれているんだと思っていましたが、そうではなく、ただ人を縛る規則を決めるのが好きな人間の集団なんですね…
747デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/25(水) 21:01:12.18ID:HhfzRslS0
> MISRA-Cを守っていないと、低品質で、審査に通りませんよと言うことw

MISRA-Cを守っていれば、高品質で、審査に通ると言いたいのか?
もう罵倒語が喉まで出かかっているんだが
748デフォルトの名無しさん (ワッチョイ 9fa5-/xyN)
2019/12/25(水) 22:01:38.68ID:R5R0tFog0
違うナァ
MISRA語ルールを守っているとMISRA語のコンパイラが書けないんだよw
大いなる自己矛盾に陥ってMISRAは沈没する
749デフォルトの名無しさん (ワッチョイ 974f-prDO)
2019/12/25(水) 22:15:36.92ID:rtgRmFxx0
>>726みたいなのはいくつか特定の値しかとれない引数のために使われることはあるね。
まぁenumでもいいんだけど。
750デフォルトの名無しさん (ワッチョイ 9f01-fd2f)
2019/12/25(水) 22:31:21.33ID:W4j7C6dU0
>>747
>> MISRA-Cを守っていないと、低品質で、審査に通りませんよと言うことw
これを読んで
> MISRA-Cを守っていれば、高品質で、審査に通ると言いたいのか?
と解釈する奴はもれなくバカ
751デフォルトの名無しさん (ワッチョイ b7b2-r9Jq)
2019/12/25(水) 22:35:19.52ID:HhfzRslS0
>>750
違うんなら弁明しろよ
それができないだろうという予想で、罵倒語が喉まで出かかっている
752デフォルトの名無しさん (ワッチョイ 9f01-fd2f)
2019/12/25(水) 22:55:02.25ID:W4j7C6dU0
>>751
マジでバカなのか?w
AならBである
から
AでないならBでない
(当たり前だが真ではない)
って書けばお前のアホさが理解できるかな?
これでわからないなら中学の数学からやり直せ
753デフォルトの名無しさん (ワッチョイ ff02-65x4)
2019/12/25(水) 23:19:28.12ID:7G8eDwRY0
0(ゼロ)はマジックナンバーじゃないような気が
754デフォルトの名無しさん (ワッチョイ 9773-x674)
2019/12/25(水) 23:20:28.23ID:LrSoTBV60
8進数は使用禁止なので0は使えません
755デフォルトの名無しさん (ワッチョイ 1a63-K0SF)
2019/12/26(木) 00:09:17.82ID:AoPKrYsL0
0x0と書けばいい
756デフォルトの名無しさん (ワッチョイ 5e1d-fJ/L)
2019/12/26(木) 01:10:46.52ID:SdIj1xpo0
main関数の{ }についてお聞きしたいんですが、
int main(void) {
____/* コード */
}
という表記ではいけないですか?
スッキリCや各種サイトを見ると、
int main(void)
{
____/* コード */
}
となっていることがほとんどなのですが
757デフォルトの名無しさん (ワッチョイ 1c79-RbSw)
2019/12/26(木) 01:13:45.64ID:1Soz4RTf0
間を取って
int main(void) { /* コード */ }
でも動くぞ
758デフォルトの名無しさん (ワッチョイ 98ad-7JW6)
2019/12/26(木) 01:16:16.88ID:wuBFmrIL0
>>756
コンパイラは改行を無視するんやで
759756 (ワッチョイ 5e1d-fJ/L)
2019/12/26(木) 01:20:09.70ID:SdIj1xpo0
ありがとうございます。
後者にしないといけないという決まりとかあるんですか?
760デフォルトの名無しさん (ブーイモ MM98-La8A)
2019/12/26(木) 01:22:32.15ID:B3/URd3+M
文法じゃなくてコーディングスタイルのこと聞いてるんでしょ。
チーム内で決まったスタイルがあるならそれに従えばいいし、
そうでなければ自分の好みで決めればいい。
俺の好みは1行減るし統一感のある前者。
761デフォルトの名無しさん (ワッチョイ 0073-Rqzo)
2019/12/26(木) 01:23:11.55ID:rIhsLdYp0
私も前者
762デフォルトの名無しさん (ワッチョイ 9602-Bzg6)
2019/12/26(木) 01:28:27.58ID:ekrCE4yL0
K&R2は後者
763756 (ワッチョイ 5e1d-fJ/L)
2019/12/26(木) 01:40:40.30ID:SdIj1xpo0
もう少し考えてみようと思います
深夜にありがとうございました
764デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 07:31:20.36ID:RfJEL4eB0
>>752
では、741は何を主張したかったんだ?

> MISRA-Cを守っていないと、低品質で、審査に通りませんよと言うことw

わざわざ、こんな戯れ言をぬかした意図を説明しろ
765デフォルトの名無しさん (ドコグロ MM46-Nxir)
2019/12/26(木) 07:33:50.37ID:Fsuom43iM
>>764
それは741に聞けや
俺はお前のバカさを指摘しただけ
766デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 07:36:01.30ID:RfJEL4eB0
>>756
if (...) {
while (...) {
do {
なのに、
main()
{
という矛盾はよく見かけるが
そうなっている案件で秩序を乱すことはしない
767デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 07:49:13.97ID:RfJEL4eB0
>>765
741本人のくせに自分の言葉から逃げてんなよ
まあ、あれじゃ逃げたくなるのはわかるがw
768デフォルトの名無しさん (ワッチョイ 2f7b-keN1)
2019/12/26(木) 08:06:43.81ID:GqOej4nw0
>>756
int func(int arg)
{
...
}
という具合に「関数本体を開始する波括弧を次の行に書く」方式だと
ヘッダファイルにプロトタイプ宣言として書き写す際に
1行コピーして行末に ; 追加で完了、楽チンという利点があるわね。

main() の場合は当てはまらないのがやや弱いけど。
769デフォルトの名無しさん (ドコグロ MM46-Nxir)
2019/12/26(木) 08:18:02.10ID:Fsuom43iM
>>767
自分のバカさを認められずに自演認定でごまかすのに必死かよw
哀れな奴
770デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 08:31:13.53ID:RfJEL4eB0
>>769
MISRAの話しなくなってやんのw
技術板で技術的な話ができないやつはゴミ以下だぜ
771デフォルトの名無しさん (ドコグロ MM46-Nxir)
2019/12/26(木) 08:47:26.74ID:Fsuom43iM
>>770
> 技術板で技術的な話ができないやつはゴミ以下だぜ
中学校の数学すら理解してない奴が何言ってるんだかw
772デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 10:44:30.71ID:RfJEL4eB0
>>771
いや理解してるよ
そうでなきゃ年収8桁はできねえ
773デフォルトの名無しさん (ワッチョイ 6c88-hRE6)
2019/12/26(木) 11:06:55.96ID:F8ujXl8x0
こんなところで年収自慢なんかしても虚しいだけじゃないか?
対偶を勘違いしてるなんてみんな気付いてるのに無理につっかかんなって
774デフォルトの名無しさん (ワッチョイ 9602-Bzg6)
2019/12/26(木) 11:13:36.42ID:ekrCE4yL0
>>766
power(x, n)
int x, n;
{
....
}
775デフォルトの名無しさん (ワッチョイ 9602-Bzg6)
2019/12/26(木) 11:15:24.50ID:ekrCE4yL0
MISRAで if(x)がまずい理由を教えてくだされ
776デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
2019/12/26(木) 11:17:42.33ID:qmNoWNu8F
>>731
一般的に特定の非正規形は特定の分析用途には使いやすくても
違う観点で分析しようとすると正規形からデータ変形するよりも多くの手間がかかる
参照オンリーの場合でもデータの利用方法が定型化していない場合は正規形から考えるメリットは大きい

特にRDBで分析用途のDBを用意する場合は参照オンリーでも正規形から考えとかないと手間が異常に増える
777デフォルトの名無しさん (ワイーワ2 FF7a-v1fK)
2019/12/26(木) 11:21:50.00ID:qmNoWNu8F
>>752
高品質で、審査に通っていれば、MISRA-Cを守っている

やっぱり違うなω
元の命題からして可笑しいωωω
778デフォルトの名無しさん (ワッチョイ 6c88-hRE6)
2019/12/26(木) 11:31:06.38ID:F8ujXl8x0
元の命題の真偽ではなく元の命題を真と仮定した場合、対偶は真か?という話
本来、対偶は真であるが747は対偶ではない命題を挙げてそれが真であるかのようにレスしているので突っ込まれた
対偶の挙げ方の間違いを指摘したのになぜか元の命題の真偽についてギャーギャー言うから話が噛み合わない
779デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 11:36:01.57ID:RfJEL4eB0
>>773
みんな気付いているのは、わざと言っていることだよ
鬼の首でも取ったように得意がってるのがおまえだけ
中学の数学がやっとわかるのか、すごいなあw
780デフォルトの名無しさん (ドコグロ MM46-Nxir)
2019/12/26(木) 12:24:56.24ID:Fsuom43iM
いきなり年収自慢とか笑える
まあ低能にありがちな行動だけどなw
781デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 12:27:00.84ID:RfJEL4eB0
中卒でも中には総理大臣になった人もいるけどね
そういうことにしといてやろうか?
782デフォルトの名無しさん (ワッチョイ 79da-DGYe)
2019/12/26(木) 12:48:48.88ID:nqqh6plV0
そもそも集合関係と因果関係を混同しているのが間違いの原因
「事象Aが真ならば事象Bは真」の対偶「事象Bが真でないならば事象Aは真ではない」は常に正しい
一方「原因Aが真ならば結果Bは真」に対して「結果Bが真でないならば原因Aは真ではない」は正しいとは限らない
783デフォルトの名無しさん (JP 0H99-La8A)
2019/12/26(木) 13:05:49.36ID:mq/d+l+IH
>>774
K&R1の時代には改行後に { を書くしかないが、
いまどき持ち出して混乱させるのはやめろ
784デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 13:06:48.52ID:RfJEL4eB0
>>782
おまえ747の時点で俺がそう言っているのが読めてないもんな
そうやって教科書を朗読するのもいいことだから頑張んなw

お勉強はまず憶えることが初手だが
現実問題に応用できるようになって始めて完成するんだよ
785デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 13:08:29.47ID:RfJEL4eB0
>>783
774は制御文と関数は違うということが766の言う「矛盾」のルーツだと言いたいんだと思うぜ
786デフォルトの名無しさん (ワッチョイ 79da-DGYe)
2019/12/26(木) 16:43:01.33ID:nqqh6plV0
>>747は「事象Aが真でないならば事象Bは真ではない」
集合論で言えば「対偶」ではなくて「裏」の関係
787デフォルトの名無しさん (ワッチョイ 79da-DGYe)
2019/12/26(木) 16:53:45.31ID:nqqh6plV0
「裏」の「逆」または「逆」の「裏」が「対偶」
ある命題とその待遇が等しいのはそれぞれの事象に因果関係が存在しない場合に限る
788デフォルトの名無しさん (ワッチョイ 79da-DGYe)
2019/12/26(木) 16:55:11.16ID:nqqh6plV0
訂正
対偶 ← 待遇
789デフォルトの名無しさん (ワッチョイ 2135-5PNG)
2019/12/26(木) 16:58:23.55ID:sEyHy/3c0
ダッサ。
790デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/26(木) 17:06:16.94ID:RfJEL4eB0
やっぱり、憶えたてなんだな
791デフォルトの名無しさん (ワッチョイ 79da-DGYe)
2019/12/26(木) 17:08:28.53ID:nqqh6plV0
間違った応用が>>747
792デフォルトの名無しさん (スップ Sd9e-2XGM)
2019/12/26(木) 17:49:48.63ID:WYIkcR78d
MISRAの肩を持とうとしてしくじったトンマなやつに
どんな気持ちか聞いてみたのさ
793デフォルトの名無しさん (スップ Sd9e-2XGM)
2019/12/26(木) 17:53:02.71ID:WYIkcR78d
741本人以外がこんなに激怒するわけねえしな
なあトンマ、今どんな気持ち?
794デフォルトの名無しさん (ドコグロ MM46-Nxir)
2019/12/26(木) 19:16:56.42ID:Fsuom43iM
対偶と裏の区別もつかずに年収8桁とか学歴とか低能にありがちなレス連発やんw
こんなわかりやすい奴久々に見たわ
795デフォルトの名無しさん (ワッチョイ 1a63-K0SF)
2019/12/26(木) 19:33:59.80ID:AoPKrYsL0
この場合は対偶ではなく必要条件だろう
796◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/26(木) 20:35:37.78ID:oR6l+tOb0
>>794
あなたのほうが滑っていますよ…
そもそも MISRA 推しな時点でこのスレの住人から疑問の声が挙がっているのに、まだそれに気づかないの?

末期ですね
797デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/26(木) 22:41:57.32ID:VSQSaAA/0
いくらMISRA推しガーとか言っても>>747がバカなのは変わらないんだがw
798デフォルトの名無しさん (ワッチョイ ae2c-fJ/L)
2019/12/26(木) 22:55:46.00ID:T0QuicHn0
トヨタの車が暴走した問題で、米国議会でも言ってただろ

トヨタは、MISRA-C で、10点ぐらいしか取れてないってw
100ルール中、90に違反してる

守ってない企業があるから、人命を預かる、ロケット・医療系組み込みなどでは、
特に厳しい資格が必要だと議論になってる

組み込みでは、バグで簡単に、人が死ぬから

だから、何十年も研究してる、Elixir みたいな関数型を使う
799デフォルトの名無しさん (アウアウクー MMd2-Ap2Z)
2019/12/26(木) 23:26:05.24ID:46flAZOsM
プログラムを書くのに●●は駄目だとか使いにくくなるほど制限かけてもさぁ
書きたい事に必要な関数とか書き方とか知らないようなのに投げてるだけなので脆弱性になるようなバグは出てくるし意味がない
むしろ知ってるような人にとっては制限になって害でしかない
800798 (ワッチョイ ae2c-fJ/L)
2019/12/26(木) 23:35:54.81ID:T0QuicHn0
JavaScript で言えば、TypeScript, ESLint とか

違反を警告してくれる、lint ツール
801デフォルトの名無しさん (ワッチョイ 9602-Bzg6)
2019/12/27(金) 04:25:18.37ID:z/PqntEl0
>>740
> 実質的にboolなら中身はdoubleでもenumでもint64_tでもifに入れて良い
っていうコーディング規約
-0.0は ?
802デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/27(金) 08:36:35.25ID:DgDeU8pJ0
>>799
御意

無能のために無能に合わせろと無能がわめく
自己虫以外の何ものでもない
803デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/27(金) 10:25:45.84ID:LEFEPZUo0
MISRAってむしろ>>799, >>802みたいな自称上級者がやらかすのを防止するためのものなんだけどなw
804デフォルトの名無しさん (アウアウウー Sa83-JRPA)
2019/12/27(金) 11:19:30.64ID:atLAFlUCa
もうめんどくさいからMISRA押しのRuby君が害悪ということでいいのではなかろうか?
805デフォルトの名無しさん (ワッチョイ 6e14-K0SF)
2019/12/27(金) 11:33:33.48ID:4UHOi1400
>>798
トヨタなんて下請け丸投げでソース読めなくてレビューもしてくれなくてテスト仕様書も丸投げで無駄なエビデンスばかり要求してる
10点ぐらいしか取れてないのは下請けなんだけどそれを指摘もできない
806デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/27(金) 12:23:31.65ID:DgDeU8pJ0
>>803
上級者なんて称号は俺はもちろん客先の誰も使ってねえぜ
仕事がもらえる、それだけだ

わかるかい? 無職君w
807デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/27(金) 12:25:05.61ID:DgDeU8pJ0
ちょっと年収の話したらあんなに発狂すると思わなかった
よっぽどコンプレックスらしいな、おーこわ
808デフォルトの名無しさん (ワッチョイ 328c-M7II)
2019/12/27(金) 13:04:42.76ID:8p+LGuzl0
作業は指示するが仕事は教えないクソ野郎が増えたから
この先の見通しが暗い。
809デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/27(金) 13:14:05.49ID:LEFEPZUo0
「自称」上級者の意味すら理解できない>>806
だめなのは数学だけかと思ったら国語も壊滅的だなw
810デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/27(金) 14:16:27.64ID:DgDeU8pJ0
見てやってよ、このファビョり方w
811◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/27(金) 18:59:31.88ID:9iE1xeZJ0
>>800
そういうものを MISRA 対応として lint ツールとして無償公開するのが筋というものでしょうね
812デフォルトの名無しさん (ワッチョイ 1e01-dR36)
2019/12/27(金) 19:05:46.68ID:9mTyz2ro0
例外項目を設けてスコアで評価するにしても、事前に自動評価できるツールがあるといいですわね
813デフォルトの名無しさん (ワッチョイ 1a63-K0SF)
2019/12/27(金) 19:07:00.34ID:EEOcwadQ0
すぐに愚痴こぼしスレになってしまう
814デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/27(金) 19:30:32.05ID:DgDeU8pJ0
スコアとか意味ねえ
違反箇所は違反箇所で数の問題じゃねえ
違反プログラムは遠さねえとぬかすなら絶対に通すな
その結果に責任を持て
815デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/27(金) 20:14:59.62ID:LEFEPZUo0
対偶すら理解できてない奴が責任を持てとかw
816デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/27(金) 20:32:09.24ID:BhrMVyLj0
MISRA対応テストツール高そう
817デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/27(金) 20:33:12.08ID:BhrMVyLj0
>>803が仕事を出している側である可能性を考慮できない>>806
818◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/27(金) 20:59:59.10ID:9iE1xeZJ0
>>815
そこにしか突っ込むことが出来ないのですか?みじめですね…
819798 (ワッチョイ ae2c-fJ/L)
2019/12/27(金) 21:01:30.94ID:G2Hqp8Jj0
組込み開発者におくるMISRA‐C:2004―C言語利用の高信頼化ガイド、MISRA‐C研究会、2006

この研究会は、トヨタなど大企業から、数十人のベテが集まって、
欧州人に聞きながら、作った本。
未だに、コーディングルールのバイブルだろ

元々は、Andrew Koenig の本

C Traps and Pitfalls, 1988, c1989
Cプログラミングの落とし穴

この本から、Lint が始まったのじゃないか?
820デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/27(金) 21:11:55.30ID:LEFEPZUo0
>>818
別に他のところに興味ないし
まあこんな初歩的なところに突っ込まれるとそりゃ困るわなw
だからROMってりゃいいと思うんだけどな
821デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/27(金) 21:13:58.37ID:LEFEPZUo0
>>819
> この本から、Lint が始まったのじゃないか?
流石にもう少し時代を見てからレスした方がいいぞ…
822デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/27(金) 21:29:02.92ID:BhrMVyLj0
そっかー組み込み屋さんはUNIXの歴史とか知らなかったりするのか
823◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/27(金) 21:33:22.44ID:9iE1xeZJ0
>>819
>この本から、Lint が始まったのじゃないか?

違います
初期の lint はベル研の V7 と同時、1979 にはリリースされています
K&R1 は特に引数まわりはスキのある仕様でしたので細かくチェックをいれる lint は必要であったのも理解できます、これは K&R2 になってかなり改善されました
それに最近のコンパイラは lint に似た warning も出せるようになったし
824798 (ワッチョイ ae2c-fJ/L)
2019/12/27(金) 22:09:21.87ID:G2Hqp8Jj0
はじめてのOSコードリーディング UNIX V6で学ぶカーネルのしくみ、青柳 隆宏、2013

そう言えば昔、こういう本も読んだ
825デフォルトの名無しさん (ワッチョイ 5e1d-fJ/L)
2019/12/28(土) 01:02:34.32ID:Td7wq8Cw0
ジャンケンのコードを書いてみました
よろしければ、ご指摘等をお願いします
https://pastebin.com/HCLJ5m7p
826デフォルトの名無しさん (ラクッペ MM70-DGYe)
2019/12/28(土) 02:00:59.65ID:xvOJ+UySM
>>825
少しは取り繕えよ
何かのコピペだろ
827デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/28(土) 06:31:05.78ID:r5X0es4d0
>>823
> それに最近のコンパイラは lint に似た warning も出せるようになったし
初期のlint使ったことないだろw
828デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/28(土) 07:57:54.17ID:b9pc6wBR0
>>817
そんな可能性は絶対の絶対にゼロだ
829デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/28(土) 08:04:30.24ID:b9pc6wBR0
>>815
俺に言わせれば、おまえ文系くせえんだよ
俺はハード設計もやるから負論理だのド・モルガンだのは息をするくらい当たり前なことで
待遇だの裏だのという用語で得意がるやつは専門分野は何だろうと思ってしまうのさ

それから突っ込まれてるのはおまえだぞ、741本人よ
830デフォルトの名無しさん (スプッッ Sd9e-Rqzo)
2019/12/28(土) 08:18:01.34ID:5fvEktMvd
待遇で得意がるvsドモルガンで得意がる
小学生同士かよ
831デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/28(土) 08:39:28.74ID:r5X0es4d0
>>829
対偶の話に負論理とかド・モルガン?
恥の上塗りか?
あと741に突っ込んでるのは頓珍漢なお前だけだぞw
832デフォルトの名無しさん (ワッチョイ 9bb2-HfLM)
2019/12/28(土) 09:32:59.76ID:b9pc6wBR0
やっぱり通じねえなw
833デフォルトの名無しさん (スプッッ Sd9e-Rqzo)
2019/12/28(土) 09:45:41.04ID:5fvEktMvd
C言語の話しようぜ
834デフォルトの名無しさん (ワッチョイ 8746-RUNk)
2019/12/28(土) 10:06:23.41ID:VDzFwrot0
printf("やっぱり通じねえなw\n");
835798 (ワッチョイ ae2c-fJ/L)
2019/12/28(土) 11:10:17.46ID:vnZXJluZ0
電子回路・HDL などの組み込みでは、
AND, OR, NOT, NAND,NOR などの回路、
負論理、ド・モルガン、カルノー図とか、初歩だぞw

まず、情報処理の組み込みの教科書を読め!
836デフォルトの名無しさん (ワッチョイ 2135-YzVQ)
2019/12/28(土) 11:11:43.15ID:CljHkVQA0
>>831
負論理とかドモルガン知ってる人が対偶の意味知らないと思ってるの?
837デフォルトの名無しさん (ワッチョイ 328c-M7II)
2019/12/28(土) 11:18:29.36ID:BVlwLEoZ0
双対は知らないだろう?
838デフォルトの名無しさん (アウアウウー Sa83-JRPA)
2019/12/28(土) 11:34:08.50ID:KhDEPBLca
このスレっていつも下らない喧嘩を延々と続けてる奴らがいるけど、何なんだろう。どっちが正しいとか以前に言ってる中身(議論の仕方)が下らなくて他人からはどっちもバカにしか見えないから消えてくれないか。
839◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/28(土) 11:34:44.58ID:9Pig40yt0
>>827
Sun OS 4.1 のはやったことがありますが、初期の頃とは変わっていたのかも
840デフォルトの名無しさん (ラクッペ MM70-DGYe)
2019/12/28(土) 11:54:34.25ID:xvOJ+UySM
>>836
彼は分かってない
2回も指摘されてるのに論理が破綻していることに気付いてない
>>747,750,751,752
>>782,784,786
841デフォルトの名無しさん (ドコグロ MM2e-Nxir)
2019/12/28(土) 12:53:03.04ID:1RUtvmltM
>>836
さあどうだろうね、「ド・モルガンの定理知ってる」なら「待遇を理解してる」という命題が証明されたとか聞いたことないし
そもそもド・モルガン知ってるとか言うのも>>829が言ってるだけだし、>>747が対偶でない事を知ってるのかすら怪しいしなw
842デフォルトの名無しさん (ワッチョイ 2135-YzVQ)
2019/12/28(土) 13:01:09.99ID:CljHkVQA0
読んでないから知らんけどこんな雑談に対偶ガーとか論理ガーとか証明ガーってのは馬鹿馬鹿しいね。
843デフォルトの名無しさん (ラクッペ MM70-DGYe)
2019/12/28(土) 13:08:05.93ID:xvOJ+UySM
似て非なるもの
ド・モルガン
A ∩ B = ¬(¬A ∪ ¬B)
A ∪ B = ¬(¬A ∩ ¬B)
対偶
A ⇒ B = ¬(¬B ⇒ ¬A)
844デフォルトの名無しさん (ラクッペ MM4b-HCDf)
2019/12/28(土) 13:09:43.37ID:1WIkADffM
正直、アスペ馬鹿が下らないことを追求したがってるだけにしか見えない
845デフォルトの名無しさん (ラクッペ MM70-DGYe)
2019/12/28(土) 13:14:14.77ID:xvOJ+UySM
コピペ改変してから何か変だと思い直してみれば正解はこうだったすまん
対偶
A ⇒ B = ¬B ⇒ ¬A
846825 (ワッチョイ 5e1d-fJ/L)
2019/12/28(土) 13:19:13.30ID:Td7wq8Cw0
>>826
いえ、typedefの文はスッキリCを参考にしましたが、
あとのアルゴリズムはオリジナルです

こんなところで意見を求めるのは図々しいと分かってはいますが、
何とかお願いします
847デフォルトの名無しさん (ラクッペ MM4b-EtAK)
2019/12/28(土) 14:01:27.13ID:L2lyDMSgM
後出しで負けを実装するとよりじゃんけんぽくなるぞ
848デフォルトの名無しさん (ワッチョイ f6d2-Bxcu)
2019/12/28(土) 15:05:05.31ID:VCBq52Cm0
C言語のBNFって何種類あるの?
知ってるだけ全部教えて
849デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/28(土) 15:51:37.71ID:r5X0es4d0
>>842
うん、俺もそう思うよ
>>747が裏も正しいと思い込んでるバカってだけの話だしw

>>844
何を追求してると思うの?
追求すべき事柄なんて特にないと思うけど
850デフォルトの名無しさん (ワッチョイ aa01-Nxir)
2019/12/28(土) 15:54:09.64ID:r5X0es4d0
>>848
https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of%20C%20in%20Backus-Naur%20form.htm
851デフォルトの名無しさん (アウアウウー Sa83-JRPA)
2019/12/28(土) 15:54:25.66ID:Srq0kgZJa
>>848
ググれ
852デフォルトの名無しさん (ワッチョイ c6c5-RbSw)
2019/12/28(土) 17:33:03.88ID:y9rwRM9T0
OKグーグル、CのBNFを教えて
853デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/28(土) 17:41:03.87ID:c/4LCSnv0
K&Rの付録ページになかったかなかな?
854デフォルトの名無しさん (ワッチョイ c6c5-RbSw)
2019/12/28(土) 17:45:59.25ID:y9rwRM9T0
BNFで思い出したが

enum { a } func(void) { return a; }

この文法使い道ないよな
855デフォルトの名無しさん (ワッチョイ f2ad-K0SF)
2019/12/29(日) 03:22:40.86ID:GZSHSaBs0
>>714
エイリアスの否定とはいただけない
直値だけの糞コードはゴメンだわ
意味によって0とNULLは書き分けるよ
856◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/29(日) 10:41:38.70ID:yqbBnK7b0
>>855
その書き分けに意味はあるのでしょうか?
857デフォルトの名無しさん (アウアウウー Sa83-JRPA)
2019/12/29(日) 10:49:06.87ID:OzwmxFfFa
>>856
お前にとっては意味がない。
俺や俺以外の書き分けたい人には意味がある。
それだけだから気にしなくていいぞ。
858デフォルトの名無しさん (ワッチョイ 9612-ggXP)
2019/12/29(日) 11:39:04.46ID:k3T+0Ot70
やたら長いコードの中で
it = &a;
*a = 0;
it = 0;
a = 0;
とか書かれたら混乱するだろ。
あ、でも屑はハンガリー人なんだっけ?
859◆QZaw55cn4c (ワッチョイ ea47-7AkR)
2019/12/29(日) 11:58:28.30ID:yqbBnK7b0
>>858
ハンガリアンはやらないです
860デフォルトの名無しさん (スップ Sd9e-Rqzo)
2019/12/29(日) 22:32:49.20ID:Y3W4ZjXNd
>>858
混乱するから数値のゼロもdefineしなさい
861デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/29(日) 23:06:45.98ID:jE46OAyh0
ハンガリー人は宇宙人だから仕方ないね
862デフォルトの名無しさん (ワッチョイ 4652-RbSw)
2019/12/30(月) 06:33:44.11ID:ypuMXf6z0
>>825,846
自分ならこんな感じで書く、程度のものですが思うけど良かったらどうぞ
https://pastebin.com/idm94WiU

別の機能を追加する必要とか出てきたとき、
ジャンケン自体を関数化してあげたほうがmain()関数内がゴチャゴチャしなくて良いかなと思って書きました。
863デフォルトの名無しさん (ワッチョイ 0073-Rqzo)
2019/12/30(月) 08:17:18.73ID:JZjS6BbQ0
ゴチャゴチャがjankenに移るだけ
864デフォルトの名無しさん (ワッチョイ baa5-JrBF)
2019/12/30(月) 09:11:36.36ID:W9rqQHA30
typedef char String[1024];

とtypedefしてるのはたしかどこかの教科書の流儀だったはずだ
最近その話題を見かけた
865デフォルトの名無しさん (ワッチョイ 872c-La8A)
2019/12/30(月) 12:24:04.93ID:M1MgDNrq0
あいこでの再戦と、もう一回じゃんけんするのは、
目的が違うんだから別ロジックにすべき。
866デフォルトの名無しさん (スッップ Sd70-Rqzo)
2019/12/30(月) 12:31:51.34ID:/N6WhDZId
同じ処理を共通化する
今後異なる可能性のある処理をあらかじめ分けておく

いろんな設計思想がある
867デフォルトの名無しさん (ワッチョイ 7001-35Sh)
2019/12/30(月) 17:54:24.59ID:DLFwINBS0
#define O 0
868デフォルトの名無しさん (ワッチョイ 1c79-CfTH)
2019/12/30(月) 23:34:38.97ID:QMDb+rs/0
>>864
配列のtypedefって代入で問題にならんのかな
今のCの仕様追ってないけど昔は構文エラーになるから構造体に入れる必要があった
869デフォルトの名無しさん (ワッチョイ e2ad-sLG6)
2019/12/31(火) 00:15:56.34ID:Qb6UeAHn0
>>825
これは危険なので普通はやらない。

scanf("%s", nextStr);
870デフォルトの名無しさん (ワッチョイ 4a77-HfLM)
2019/12/31(火) 00:24:22.42ID:jyfGwMQG0
1文字入力ならgetc使うかな。
871デフォルトの名無しさん (ワッチョイ 2cb6-HfLM)
2019/12/31(火) 07:44:51.11ID:8dhupYNq0
>>868
jmp_bufは配列のtypedefだよ
872デフォルトの名無しさん (ワッチョイ 4279-A9ky)
2020/01/01(水) 00:17:51.96ID:DMjscTxe0
>>871
そういやそうだね
ローカルに作って環境保存にmemcpyした覚えないから代入できるのか
色々忘れてるわ
873デフォルトの名無しさん (ワッチョイ 5dcd-kIX1)
2020/01/02(木) 09:27:06.04ID:9VSdJ8Nx0
ポインタを受け取る関数先頭では必ずnullチェックを行うコーティングルールが有るのですが
malloc失敗したポインタをそのまま渡した時ぐらいしか使い道が思い付きません…
874デフォルトの名無しさん (ワッチョイ 2e7b-nWGE)
2020/01/02(木) 09:28:21.50ID:mLLKwKl50
freeしたときに0入れるルールもあるんじゃないのそれ
875デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/02(木) 09:37:24.05ID:+UNtt4nj0
>>873
杓子定規に適用したら形だけの無駄なチェック処理の典型だね。
上位レイヤとの境界のような意味のあるところだけなら現実的だけども。
876デフォルトの名無しさん (ワッチョイ 814f-UAPS)
2020/01/02(木) 09:53:01.45ID:qr+4fHWP0
仕様としてnullを許可する関数ではチェック不要としているのかあるいは一律に
null渡し禁止としているのかで評価は変わりそうだが。
877デフォルトの名無しさん (ブーイモ MM62-kvXh)
2020/01/02(木) 10:24:26.88ID:Lvb+z/bpM
get_state()みたいな関数があって失敗時はnullを返す。それを知らずに別の関数に戻り値を直接渡してしまったとか、nullが誤って渡されるケースなんていくらでもあると思うが。

873が超天才でそんなミスは絶対ありえないとしても、他人のコードやドキュメントが間違ってる可能性もある
878デフォルトの名無しさん (ワッチョイ c2a5-s4wZ)
2020/01/02(木) 10:39:04.82ID:Dgcghn810
Player*とEnemy*を取るRPGのバトル関数で
どちらかが死んでたらplayer->attack()関数は盛大に失敗する

この時の当該playerは消滅したわけでは無いが
enemyはメモリ上から消えている

ついでにこのattack関数が実は関数ポインタに付けられたプレイヤーのスキルだった場合、
attackがカラッポだと、徒手空拳になるか防御するか何もしないか、何故か敵味方全員が即死していきなりエンディングが始まるかのどれかになる
879デフォルトの名無しさん (ワッチョイ e179-E95m)
2020/01/02(木) 11:31:53.70ID:FHRar1Ix0
安全性を取るならいついかなる時もNULLチェックは行うべき

だがそもそもパフォーマンス至上主義だから
Cという太古の言語を危険を冒してまで使っているということを考えると微妙

パフォーマンスが重要でないならCを使っていることからして論外
880デフォルトの名無しさん (ブーイモ MMb6-vILD)
2020/01/02(木) 11:38:58.14ID:ZKet2vMyM
成否を含んだtupleを渡し実行時に判別、式全体を読み飛ばす粒度の小さい隠れた分岐構文みたいなの有ればいいのにねー
成否要素だけの反転は !!tulpevalue みたいな感じで

c言語の仕事じゃないだろうしそもそもtupleなんて持ってないし
うんこマが技巧駆使してわけわからんコード書くツールになるだけかもしれんし弊害いろいろ思いつくけど
881デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/02(木) 11:39:55.37ID:+UNtt4nj0
>>878
召喚された悪魔が鼻から出てきて世界滅亡エンドも追加しといて。
882デフォルトの名無しさん (ワッチョイ 4201-19tT)
2020/01/02(木) 12:33:18.19ID:LqVuN/CI0
>>879
Assertマクロとかでいいだろ
テストとかで引っ掛けるという実利に加えて「nullなんて渡すんじゃねーよボケ」と言うのを表明する意味もあるし
883デフォルトの名無しさん (ワッチョイ 06ad-0Mr6)
2020/01/02(木) 12:38:16.19ID:wpzQe/fn0
nullに意味を持たせないプログラムなら、
null checkしないと落ちる環境ならする意味ないんじゃね
884デフォルトの名無しさん (アウウィフ FFa5-p4uH)
2020/01/02(木) 14:45:20.78ID:fRqsjLPxF
Release build だと assert 消えるって知らない人意外と多いんですね
885デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/02(木) 15:06:10.66ID:+UNtt4nj0
>>884
消えるって知ってるからassertにしろっていう意見なんだろう
886デフォルトの名無しさん (アウウィフ FFa5-p4uH)
2020/01/02(木) 15:47:44.05ID:NYIo0K4bF
その意見を完全にスルーしてコメントしてる人がいるよね
887デフォルトの名無しさん (ドコグロ MM0a-19tT)
2020/01/02(木) 16:46:49.09ID:YqaismelM
>>886
誰のことを言ってるの?
888デフォルトの名無しさん (ワッチョイ 8101-W/+2)
2020/01/02(木) 19:01:18.56ID:/MiE1Mk20
ぬるぽ
889デフォルトの名無しさん (ワッチョイ 41e8-W/+2)
2020/01/02(木) 19:06:06.49ID:LbxbUX1g0
がっ!
890デフォルトの名無しさん (ワッチョイ 6e12-kvXh)
2020/01/02(木) 19:09:50.49ID:ZQF68/R30
酷い自演を見た
891デフォルトの名無しさん (ワッチョイ 41e8-W/+2)
2020/01/02(木) 19:13:07.31ID:LbxbUX1g0
ジ・エンド!
892デフォルトの名無しさん (ワッチョイ 02f5-HvJ8)
2020/01/02(木) 19:21:03.30ID:koJayFbu0
assertを本番環境に持ち込むべきと
主張する痛いやつが昔いたが
奴は今どうしてるかな
893◆QZaw55cn4c (ワッチョイ 2247-70g7)
2020/01/02(木) 19:35:59.09ID:VmmTWzwp0
C++11 の static_assert は便利なんですけれどもね…これ、C に入らないかな…
assert も static_assert と同じ用途・考え方で使うべきものかと思いますね
894デフォルトの名無しさん (ワッチョイ 02f5-HvJ8)
2020/01/02(木) 20:05:40.84ID:koJayFbu0
Cにもstatic_assertか
考えたこともなかったが
確かにあったらよさそうだな

もういじるなってのが
俺の基本だが
追加に賛成できる珍しい例だ
895デフォルトの名無しさん (ワッチョイ 4201-19tT)
2020/01/02(木) 20:45:56.41ID:LqVuN/CI0
>>892
> assertを本番環境に持ち込むべきと
> 主張する痛いやつが昔いたが
> 奴は今どうしてるかな
本番用はいちいちassert外してるのか?w
896デフォルトの名無しさん (ブーイモ MM85-rvM9)
2020/01/02(木) 20:51:06.32ID:hML6I4krM
おいおいおい
897デフォルトの名無しさん (ブーイモ MM62-iq6k)
2020/01/02(木) 20:59:07.77ID:tgRnMcUUM
>>895
assert は Debug ビルドのときだけチェックを行う実装になってるのが普通
898デフォルトの名無しさん (ワッチョイ 4201-19tT)
2020/01/02(木) 21:59:00.14ID:LqVuN/CI0
>>897
だから>>892が意味不明なんだけどw
899デフォルトの名無しさん (ブーイモ MM62-iq6k)
2020/01/02(木) 22:07:28.72ID:tgRnMcUUM
>>898
リリースビルドで有効な assert を用意するだけだろ
何が不思議なの?
900デフォルトの名無しさん (ワッチョイ 8263-UAPS)
2020/01/02(木) 22:08:11.77ID:SH5dgl7q0
本番環境に持ち込むべき
影響出ないんだから
こういうことでは
901デフォルトの名無しさん (ブーイモ MM6d-vILD)
2020/01/02(木) 22:22:27.18ID:oLW+m36dM
深いところで拾ったエラーを浅層に戻して対応する必要がなく「ダメよ」と述べ落ち許されるプログラムならば
assert残すのも有りよね
実際#ifdef DEBUGで包んでるだけだし
imagemagickなんかも引数チェックを通った後の個々パラメータ内で不整合出たらassertでメッセージ流して落ちるし
902◆QZaw55cn4c (ワッチョイ 2247-70g7)
2020/01/02(木) 22:27:00.54ID:VmmTWzwp0
>>900
assert が発動してアプリが止まるのは終わり方として最悪だとおもいますよ
もし assert が発動する可能性があるんだったら assert ではなくて、きちんとしたエラー処理を記述するべきなのでは?

assert って辞書をみると「断言」「主張」「出しゃばり」くらいの強い意味ですね
私は assert はコメントの一種一様態として使います=>>893
903デフォルトの名無しさん (ワッチョイ 4201-19tT)
2020/01/02(木) 22:29:39.05ID:LqVuN/CI0
>>899
えっ?
>>892が正しいという主張?
まあ>>901みたいな考え方もあるだろうけどさ
904デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/02(木) 22:30:49.81ID:+UNtt4nj0
>>901
assertに引っ掛かったときの挙動は置いとくとしても、assertの処理内容や頻度によっては実行時コストが問題になる可能性も無くはないから、単純にやってよしとはならないと思うぞ。
905デフォルトの名無しさん (ブーイモ MM6d-vILD)
2020/01/02(木) 23:00:40.06ID:oLW+m36dM
効率厨はログ出力を見れるGNUemacsのeshell辺りででもwindowsプログラム立ち上げてみ?
プロプラ、オープンソースに関係なく大半のリリースビルドが膨大な出力を出しっパになってる現状に絶望するだろうから
906デフォルトの名無しさん (ワッチョイ 8263-UAPS)
2020/01/02(木) 23:03:44.94ID:SH5dgl7q0
>>905
その環境で動かすと、プリプロセッサ段階で消去されているはずのデバッグ文実行結果が見れる様になるんですか?
907デフォルトの名無しさん (ワッチョイ 2252-rouQ)
2020/01/03(金) 01:04:07.68ID:kXvb5Zcs0
>>905
処理内容や頻度によって実行時コストが問題になる可能性があると言っただけで効率厨扱いとはw
既存プログラムでログを大量に出しているからと反論しているが、だからそれがどうしたというのだ? ログを出しても性能的に問題ない範囲、頻度、量で出しているだけだろう。
908◆QZaw55cn4c (ワッチョイ 2247-70g7)
2020/01/03(金) 03:24:18.79ID:RUwUdhzc0
>>907
assertion は「コメントの一種」という私の立場では、重い assertion の罪は軽い、許容できると感じています
909デフォルトの名無しさん (ワッチョイ e173-ALt1)
2020/01/03(金) 08:42:01.33ID:3k7MKqlh0
組み込みだとタイミング込みで評価するから
ビルドを切り替えられないんだよね

assertはログだけ出すようにしてるが
ウォッチドッグを効かすってのもありかな

起こり得ないところで使うってのはその通り
910デフォルトの名無しさん (ワッチョイ c2a5-s4wZ)
2020/01/03(金) 14:46:00.81ID:SORF6jE90
ロケット打ち上げ2秒後でassert出ても意味が無いな
そのまま大爆発だ

衝突する0.5秒前でassert出ても意味が無い
時速90kmでそのまま衝突だ
911◆QZaw55cn4c (ワッチョイ 2247-70g7)
2020/01/04(土) 21:11:48.66ID:rVQt0/h/0
uint64_t を配列の添え字に使えるかどうかって何か規格はありますか?
手元の環境は unsigned int のようなんですが、gcc/ming32-x64
912デフォルトの名無しさん (ワッチョイ 2eda-ALt1)
2020/01/04(土) 22:03:02.52ID:hAlxX0tq0
uint64_tどころかポインタも使えるぞ
913デフォルトの名無しさん (ワッチョイ 791a-UAPS)
2020/01/04(土) 22:09:03.08ID:49Uce+wI0
>>911 何を見て「unsigned int のよう」と言っているの?
914デフォルトの名無しさん (ワッチョイ 42da-hqVv)
2020/01/04(土) 22:28:50.08ID:HbavYk5j0
>>911
ISO/IEC 9899:2011 (E)

6.5.2.1 Array subscripting
1 One of the expressions shall have type "pointer to complete object type", the other
expression shall have integer type, and the result has type "type".

7.19 Common definitions <stddef.h>
size_t
which is the unsigned integer type of the result of the sizeof operator;

どこにもunsigned intに限定するとは書いてねえぞ
unsigned integerと書いてあるのが
おまえはunsigned intに見えるのか?
915◆QZaw55cn4c (ワッチョイ 2247-70g7)
2020/01/04(土) 23:21:44.72ID:rVQt0/h/0
>>912-914
コメントありがとうございます
uint64_t と int をいいかげんにチャンポンに使っていたための祟りに襲われてしまっているところでして…
a[i] = *(a + i)
を考えれば、i が int = int32_t, であろうと uint64_t であろうと、うまくやってくれると予想できますね
916デフォルトの名無しさん (ワッチョイ c2a5-s4wZ)
2020/01/05(日) 12:03:03.18ID:buL7vvPT0
そこは
[a]i = *(a+i)
だろ
917デフォルトの名無しさん (ワッチョイ 42da-hqVv)
2020/01/05(日) 12:18:38.35ID:JLxpDEWT0
>>916
それを言うならi[a]だ
ドヤるなら動作確認くらいしてからにしろ
そもそも後置演算子の[]が[a]iなわけねえだろ
918デフォルトの名無しさん (ワッチョイ 41e8-W/+2)
2020/01/05(日) 12:50:09.43ID:+e7zv/8B0
STLの配列の添え字は、std::size_tと同じ範囲が使えるように思う。
このstd::size_tには長さの制約は多分ない。
常識的に考えて、32ビットのプログラムで64ビットの配列を使うことはあまり現実的ではない。
なので、std::size_tの長さはNビットプログラムにフィットするようにコンパイル時にスイッチされる。はず。
919デフォルトの名無しさん (ワッチョイ 42da-hqVv)
2020/01/05(日) 12:58:44.11ID:JLxpDEWT0
思うんじゃなく確認しろ、多分とか寝言ぬかしてねえで

N4713

26.2.1 General container requirements
Table 83 ? Container requirements
X::size_type
size_type can represent any non-negative value of difference_type

26.3.8.1 Class template deque overview
// element access
reference operator[](size_type n);
const_reference operator[](size_type n) const;
920デフォルトの名無しさん (ラクッペ MM61-Gr30)
2020/01/05(日) 13:25:51.85ID:qO+R3XJXM
教官湧いててワロタ
921デフォルトの名無しさん (ワッチョイ 9901-8/Ff)
2020/01/05(日) 13:55:25.64ID:+b/hvkzN0
教官使い倒そうぜ。
タダだし。
922デフォルトの名無しさん (ワッチョイ 417b-wLQD)
2020/01/05(日) 15:43:26.81ID:Apdi0tl00
具体的な規格の文面を引用して示してくれるのは有難いことでしょ。
手元にPDFとかで持ってても場所を見つけるのが苦労で諦めることが多いし。

size_type can represent any non-negative value of difference_type
の部分を見ると size_t の大きさは difference_type の大きさに依存する、
少なくとも difference_type の正の範囲より広い、で合ってるかな。
ならば difference_type の範囲はどうなってるの? って具合に
疑問の先が移動するね。答えに近づいたけれど到達はしてない感じ。
923デフォルトの名無しさん (アウアウエー Sa4a-p4uH)
2020/01/05(日) 20:35:48.07ID:eK7nc1Ssa
添え字は size_t が良き
924デフォルトの名無しさん (ワッチョイ 82c5-E95m)
2020/01/06(月) 01:11:40.15ID:eLfBkWc60
俺は符号付のほうが好きだな
符号なしって扱いがめんどくさい
925デフォルトの名無しさん (ワッチョイ 4279-A9ky)
2020/01/06(月) 02:32:02.65ID:4dvQB2Dx0
メモリアドレスに符号はない
926デフォルトの名無しさん (ワッチョイ 42da-hqVv)
2020/01/06(月) 02:58:19.15ID:5D5lgCny0
だがptrdiff_tは符号付きだ

絶対アドレスに符号はなくても
オフセットには符号がある

配列の添え字はオフセットなわけだが
それでもsize_tであるべきか?
927デフォルトの名無しさん (アークセー Sxf1-zEig)
2020/01/06(月) 03:02:12.43ID:YD66nlsEx
BSTRのように、ときどき境界より前を参照したいことはあるかな
928デフォルトの名無しさん (ワッチョイ 42da-hqVv)
2020/01/06(月) 03:05:00.95ID:5D5lgCny0
free()とかマイナスオフセットなしでどうやって実装するんだよ、とかね
929デフォルトの名無しさん (ワッチョイ 9901-h51Y)
2020/01/06(月) 10:54:17.16ID:zGikmXAV0
マジ?
930デフォルトの名無しさん (ワッチョイ 9901-skQ4)
2020/01/06(月) 13:04:19.40ID:UJayP8xu0
いつになるか激的アーキテクチャの進化でも迎えない限り
64bitでmsbまで使い切る正数アドレスなんて無いから
相対はヌルチェック+自動整数変換に頼っときゃいいんじゃね
fseek/off_tはなんかもやもや放置気味?誰が完全な解決をもたらすのか
931デフォルトの名無しさん (ワイーワ2 FF8a-p4uH)
2020/01/06(月) 19:21:49.21ID:OSGVopulF
変なセグメント跨がないだけまだマシ
932デフォルトの名無しさん (ワッチョイ 82c5-E95m)
2020/01/06(月) 20:57:41.21ID:eLfBkWc60
俺はCからプログラミング言語は学んだが、Cから入って正解だったな
あの苦難の道を思えばどれも大したことはない
C++とRustを除けば
933デフォルトの名無しさん (ワッチョイ 42ad-cEPd)
2020/01/07(火) 00:34:22.49ID:MpiZXKP+0
>>925
しかし俺の心の中にあるのだ。
934デフォルトの名無しさん (ワッチョイ 8263-UAPS)
2020/01/07(火) 10:47:03.55ID:YpzCpCxL0
君はディラックの海に飲み込まれている
935デフォルトの名無しさん (ワッチョイ 82c5-E95m)
2020/01/07(火) 16:39:38.02ID:Hzpz4xj50
なんだっけそれ
どっかで聞いたことあるんだが思い出せない
936デフォルトの名無しさん (ワッチョイ be7c-UAPS)
2020/01/07(火) 16:45:14.58ID:3/Noa7Ai0
>>935
熱素やエーテルみたいな架空の物質モデル論のひとつ
937デフォルトの名無しさん (ワッチョイ 7fc5-G18V)
2020/01/08(水) 23:52:10.09ID:2EljHN2O0
>>936
アニメで引用されてた気がする
エヴァだっけ?ディラックの海ってリツコが言ってたような
938デフォルトの名無しさん (ワッチョイ 5f2c-fsjN)
2020/01/10(金) 20:53:06.96ID:z03T2m7q0
2019年に成長したプログラミング言語ランキング、第1位は? 2020/01/10 09:18 後藤大地
https://news.mynavi.jp/article/20200110-952052/

TIOBE Softwareがこのほど、2019年に最もインデックス値を伸ばしたC言語が2019年のプログラミング
言語・オブ・ザ・イヤーに輝いたと伝えた。第2位はC#で、これにPythonとSwiftが続いている。

C言語のインデックス値が伸びた理由として、IoTおよび小型のインテリジェントデバイスにおいて需要が
高いためだという。C言語は短時間で習得が可能な上、すべてのプロセッサにおいてCコンパイラを利用
できる。TIOBE Softwareは、こうした状況がC言語のインデックス値上昇を招いたのではないかと分析
している。

発表された2019年におけるインデックス増加率と順位は次のとおり。[順位]プログラミング言語(増加率)
[1]C(+2.4%)、[2]C#(+2.1%)、[3]Python(+1.4%)、[4]Swift(+0.6%)、

2019年のプログラミング言語・オブ・ザ・イヤーは、2018年に引き続きPythonが受賞するだろうと考え
られていた。これは、Pythonが2018年に入ってから長期にわたって増加傾向を維持しているためだ。
しかし、2019年はC言語の増加率がPythonを超えて1位となった。C言語は2016年に一気にインデッ
クス値を下落させており、2017年後半から逆に増加に転じている。ずでに減少以前の水準まで戻って
きており、今後も同様のペースで増加を続けるかどうかはわからない。

仮に、今後も同様のペースでC言語の増加傾向が続いた場合、JavaとC言語のポジションが逆転して
C言語が首位になる月が出てくる可能性もある。しかし、過去の動向として、JavaとC言語は推移が同調
する傾向が強く、Javaが第1位でCが第2位という順位のまま推移する可能性もある。(中略)

TIOBE Programming Community Index (PCI)は、複数の検索エンジンの検索結果から、対象となる
プログラミング言語がどれだけ話題になっているかをインデックス化したもの。2020年1月におけるイン
デックスは次のとおり。

1月TIOBE Programming Community Index / 円グラフ
C言語なら俺に聞け 153 	YouTube動画>7本 ->画像>4枚
939デフォルトの名無しさん (ワッチョイ 5f3c-G18V)
2020/01/10(金) 23:49:08.97ID:dnkcugEB0
>C言語は短時間で習得が可能
お、おう
940デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/10(金) 23:54:40.89ID:g1glT3r10
Cの文法や標準ライブラリがコンパクトだし覚えるべき概念も少ないのは間違いない
941デフォルトの名無しさん (ワッチョイ 7f52-4RSc)
2020/01/11(土) 00:21:52.03ID:tkcR1Lp+0
覚えることは少ない(簡単ではないけど)
942デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)
2020/01/11(土) 00:57:34.91ID:NtF2wljx0
オブジェクト指向とポインタならポインタの方がラク
それにメモリに沿ってるので分かり易い
943デフォルトの名無しさん (ワッチョイ df52-G18V)
2020/01/11(土) 03:00:34.20ID:3RtWHygz0
ポインタとオブジェクト指向は別物だからな
そもそも比べるのがおかしい
944デフォルトの名無しさん (ワッチョイ 7fad-0nyV)
2020/01/11(土) 07:57:38.18ID:qIT1Gaoe0
考えようによっては、ポインタとメモリの関係を理解してしまえば、
Cほど単純な言語とその標準ライブラリも他にないからなぁ
945デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/11(土) 09:58:53.91ID:AmOO0hUd0
まあ組込みだとCでいいと思うけどテンプレとかも使いたいからオラはベターCだな
946デフォルトの名無しさん (ワッチョイ ff8c-GYCx)
2020/01/11(土) 10:17:43.71ID:MvVD+3kL0
APIでいろいろある。
947デフォルトの名無しさん (ワッチョイ df2c-aZjs)
2020/01/11(土) 11:30:24.41ID:Rj+B3SHF0
ま、抽象度が低いと覚えることは少ないんだよ。
論理回路は覚えることが超少ない。
948デフォルトの名無しさん (ワッチョイ 7fad-W3qw)
2020/01/11(土) 16:02:03.38ID:j7/IvFvR0
Kotlin もよろしく
949デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/11(土) 16:06:43.26ID:tdQ2h9sk0
覚えることが少ないというか物理的で直感的だからわかりやすい
クラスとか言われても初心者には「?」だし
950デフォルトの名無しさん (ワッチョイ 7f47-soYg)
2020/01/11(土) 16:32:40.71ID:Mi8oZktw0
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

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

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

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

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
951デフォルトの名無しさん (ワイーワ2 FF7f-Eg5K)
2020/01/11(土) 17:09:55.20ID:l/QLWHKHF
const 禁止のことを言ってるなら同意
952デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/11(土) 17:46:53.86ID:AmOO0hUd0
>>950
とりあえずお前はCに留まってろ
話はそれだけだ
953デフォルトの名無しさん (ワッチョイ ff7b-WeIK)
2020/01/11(土) 17:53:57.75ID:DoM09T/H0
有名なリーナスのコピペだろ
954デフォルトの名無しさん (ワッチョイ ff8c-GYCx)
2020/01/11(土) 22:53:33.52ID:AUXeR2Nj0
初心者がC++を使うのはクラスが便利とかではなくて便利そうなライブラリを引っ張てこれるからだろう。
955デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/11(土) 22:55:44.33ID:maKKMM+r0
便利そうなライブラリを引っ張ってこれる時点でプログラミング初心者ではないし
そもそもC++から始めるプログラミング初心者とか存在すんのか?
956デフォルトの名無しさん (ワッチョイ df01-Hp8P)
2020/01/11(土) 23:26:05.56ID:PA1VQQuv0
>>947
NANDだけだな
957デフォルトの名無しさん (ワッチョイ df01-ErPi)
2020/01/11(土) 23:31:10.93ID:r5wulSj/0
単純に便利だからじゃないの。
958デフォルトの名無しさん (ワッチョイ 5f3c-G18V)
2020/01/12(日) 01:47:15.90ID:yxPPqVVq0
>>956
そうなんだ
959デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/12(日) 01:51:46.75ID:HwD03+Q90
笑って良いか?w
960蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-fZVk)
2020/01/12(日) 02:18:33.81ID:1G/fBof90
いいとも!
961デフォルトの名無しさん (ワッチョイ 7fc5-G18V)
2020/01/12(日) 03:10:59.78ID:Svv4a/Ag0
gccコンパイルしたんだが今どきのgccってC++で書かれてるんだな
恥ずかしながらつい最近まで知らんかった
962デフォルトの名無しさん (ワッチョイ ff8c-GYCx)
2020/01/12(日) 07:25:04.57ID:t6zFaymS0
>>947
でも日本は失敗したんだよね。
963デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/13(月) 14:02:27.58ID:JUx858UH0
質問です。32bitで確保できるメモリの上限近く(windowsなので1.5GBとか)を
色々なデータで確保した後、いっきに半分以上解放し、またいっきに色々なデータで
上限近く確保しようとするとmalloc()が失敗します(NULLを返す)。
プロセスのメモリを見ても500MBくらいまで落ちてから再確保しているようですがダメです。
これは内部で何が起こっているのでしょうか?断片化とかでしょうか??
964963 (ワッチョイ 5f02-tgR8)
2020/01/13(月) 14:50:30.36ID:JUx858UH0
追加ですが殆どのデータを解放して使用量50MBくらいにしてから
しばらく待ってから再確保すると上手く行くようです。ただ500〜1000MBくらい残してから
また上限近くまで確保しようとすると失敗します。何故でしょうか?
965蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ df01-fZVk)
2020/01/13(月) 15:39:54.87ID:xgMgrp400
よくわからんけど、ヒープメモリの仕組みを調べるといいかも。
966デフォルトの名無しさん (ワッチョイ df01-ErPi)
2020/01/13(月) 15:42:12.61ID:WUoSHY6Y0
アリ人間は何故なまえを変えたのか。
967デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/13(月) 15:47:05.97ID:5GjUS2iX0
フラグメント
断片化

アドレス空間2GBの壁
諦めなさい
968デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/13(月) 15:54:23.75ID:5GjUS2iX0
極端な例

256MBのメモリを8個確保 (2GB分) したあと
1, 3, 5, 7個目を解放

この状態だと
1GB空きがあるのに
連続で空いてるのは256MB
だから512MBの確保に失敗する
969デフォルトの名無しさん (アウウィフ FFa3-tgR8)
2020/01/13(月) 16:31:54.68ID:axFuJyFlF
断片化だろ
しばらく待つことに何の意味も無い
970963 (ワッチョイ 5f02-tgR8)
2020/01/13(月) 16:37:34.93ID:JUx858UH0
>>967-969
やっぱり断片化ですか… 一旦使用量50MBまで減らしたら
断片化がかなり無くなったので確保が上手く行ったという事になりますかね。
更にうまくメモリ管理するか64bit化も考えようと思います。ありがとうございました。
971デフォルトの名無しさん (アウウィフ FFa3-tgR8)
2020/01/13(月) 17:38:12.46ID:axFuJyFlF
細切れにならないように自分ででかく確保して
その中をさらに自分で管理すると良い
972デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/13(月) 19:01:20.39ID:JUx858UH0
>>971
もっと効率よくやるならその方法がやっぱいいですね。ありがとうございます。
973デフォルトの名無しさん (ワッチョイ 7f79-ZE0I)
2020/01/13(月) 22:56:26.88ID:ke+wtNqb0
そこまで大きいデータならオンメモリで処理する手段は捨てるなあ
間違えて数GBのISOファイル読み込んじゃってPC固まったとかそういう挙動は許されざるよ
974デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/13(月) 23:07:18.29ID:Yl8Am7cI0
無理に32ビットでやらなくても良いのではないか?
975デフォルトの名無しさん (ワッチョイ 7fa5-sEAu)
2020/01/14(火) 11:56:44.05ID:AM8t1N0H0
要するにブロックを詰めるパズルゲームだろ
976デフォルトの名無しさん (ワッチョイ 7f36-///2)
2020/01/14(火) 16:16:37.73ID:MAaOflfD0
メモリをポインタではなくハンドルで管理すれば
メモリコンパクションができる

ただし、そんなことをしなくても実容量を超えるメモリが提供できるようにするために仮想記憶があるんだが
977デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 16:30:41.75ID:RxBpnTJ90
実容量を超えるメモリーを使いたいだけならオーバーレイとかセグメント方式のメモリー管理機構とか色々あるが
978デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 17:25:51.38ID:Ae/uveiQ0
>>976-977
32bitプログラムだとメモリ空間が最大でも4GBしか扱えないので
それ以上は無理ではないでしょうか?扱える方法何かあるでしょうか?
979デフォルトの名無しさん (ワッチョイ df35-e1y7)
2020/01/14(火) 17:28:42.27ID:Cb2SImdL0
あるけど
980蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 17:37:38.20ID:JKuyIKmvd
メインメモリとは別の記憶媒体に退避しておけば、実質使える?かな?
981デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 17:46:20.96ID:SgRnb4BR0
>>978
その理屈だと、4GBを超えるファイルは扱えなくことになる
982デフォルトの名無しさん (ワッチョイ df73-AxFo)
2020/01/14(火) 18:01:20.77ID:vjAz2zAO0
32bit Windows の普通のプロセスのアドレス空間は2GB

OSやAPIを改造してFARポインタを扱えるようにするか
ロックアンロック方式のメモリ管理を自力で実装するか

そんなことをするよりは
素直にアプリのメモリ確保の方法を変えるのが早い
もちろん64bit化出来るならそれが一番
983デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:05:55.14ID:RxBpnTJ90
>>978
オーバーレイは同じメモリー空間のデータ/プログラムを入れ替えて実行する機能
メモリー空間の話であればバンク切替とかもあるし
984デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:13:13.94ID:Ae/uveiQ0
>>982
どうしても使ってる一部のライブラリが32bitで64bit化するのが無理でした。
>>983
そちらを調べてみようと思います。
985デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:15:32.64ID:Ae/uveiQ0
>>980-981
そうやっても必要な時にメインメモリに読み込んで使う必要がないですかね?
しかも上手くやりくりして読み込んでもそこで断片化の問題もありますし。
その場合プールを自分で管理するしかなさそうな気がします。途中でその話をしてましたが。
986デフォルトの名無しさん (ワッチョイ df2d-G18V)
2020/01/14(火) 18:31:15.17ID:jSZPoIDP0
32bitOSで4GB以上のオブジェクトをメモリに読み込んでどうにかしろ、と言われたら。
最初に検討するのはファイルマッピングだろうなあ。それ以外だとやる気がおきない。
APIを叩く必要があるので、WindowsならCreateFileMappingとかMapViewOfFileとか。
987デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:32:25.86ID:Ae/uveiQ0
>>986
ありがとうございます。調べてみますね。
988デフォルトの名無しさん (ワッチョイ 7f01-qx2z)
2020/01/14(火) 18:32:29.78ID:RxBpnTJ90
>>984
> そちらを調べてみようと思います。
いやいや、オーバーレイとかバンク切替とかは半分ネタだから今更そんなもん調べなくていいよw

>>985
> しかも上手くやりくりして読み込んでもそこで断片化の問題もありますし。
アホほどでかいサイズでなきゃそれほど問題にならないよ

> その場合プールを自分で管理するしかなさそうな気がします。途中でその話をしてましたが。
どうしてもでかい領域を確保/解放する必要あるならそれしかないように思う
989蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 18:39:12.20ID:JKuyIKmvd
どうしてそんなデカいデータが必要なんだろう。遺伝子情報でも操作してんのかな?
990デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:41:07.63ID:Ae/uveiQ0
>>988
>いやいや、オーバーレイとかバンク切替とかは半分ネタだから〜
ネタでしたかw 了解しました。

>アホほどでかいサイズでなきゃそれほど問題にならないよ
細かいのと途中で500MBくらいを二つとかがあるので時々断片化のせいでmallocが失敗するんですよねえ…

>どうしてもでかい領域を確保/解放する必要あるならそれしかないように思う
とりあえず作業領域様に500MBの領域を確保して再利用すると他の部分でmalloc失敗はなかったですね。
仰るように小さい領域はかなり確保しても問題にならないですね。大きな領域用にメモリスペースを予め確保しておく方法がよいかもしれないと思いました。
991デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 18:45:58.67ID:SgRnb4BR0
>>990
メモリーマップドは、かなり癖があるから注意して使った方がいいよ
ロジックなどの作りは簡単になるけど、
下手をすると処理が一日で終わらないなんて平気で起きる
992デフォルトの名無しさん (ワッチョイ 5f63-hsX7)
2020/01/14(火) 18:48:32.63ID:iQtyfXTR0
もう64bitが当たり前になってかなり経つ昨今、そんな案件ごろごろある
映像をリアルタイムでごにょごにょとか言われたら簡単にギガ単位のメモリ使う
稀有な例では無いけど32bit環境でやれって言われたらヤダナとは思う
993デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 18:55:05.49ID:Ae/uveiQ0
>>991
そうなんですね。了解しました。

>>989 >>992
詳細はあまり言えないのですがメモリ中に
動画データを一部展開しなければいけなくて
メモリ不足や断片化の問題で困ってました。
しかも周辺で使ってるライブラリが32bitで64bit化が難しくて。
994蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd9f-fZVk)
2020/01/14(火) 19:02:49.75ID:JKuyIKmvd
そろそろ次スレ
995デフォルトの名無しさん (ワッチョイ 7f79-G18V)
2020/01/14(火) 19:20:01.41ID:2s3ZuCDc0
8k240Hz動画だと1秒キャッシュするだけでメモリ消費24GBか
まあ今時わざわざCを使うなんて極限環境だけだからそういうこともあるよね
996デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 19:23:27.41ID:SgRnb4BR0
>>992
無理かどうか分からないけれど、その32ビットの処理だけ抜き出して
外部プログラムにし、処理結果を受けとるみたいには出来ないのかな?
997デフォルトの名無しさん (ワッチョイ 5f02-tgR8)
2020/01/14(火) 19:27:10.09ID:Ae/uveiQ0
>>996
せめてDLLが別のプロセスモードとかで動いてくれればいいんですが…
よい案がないか引き続き考えてみますー
998デフォルトの名無しさん (ワッチョイ 7f63-lB9F)
2020/01/14(火) 19:33:22.57ID:SgRnb4BR0
次すれ、立てました

http://2chb.net/r/tech/1578997950/
999デフォルトの名無しさん (ワッチョイ 7f36-///2)
2020/01/14(火) 19:45:37.22ID:MAaOflfD0
>>978
ちょっと待てや
おまえ単一仮想記憶を前提に話してるか?
今や多重仮想記憶が当たり前で単一仮想記憶はかなり特殊な存在だぞ
1000デフォルトの名無しさん (ワッチョイ 7fc5-G18V)
2020/01/14(火) 19:50:12.26ID:gkNCY9ap0
for (int i = 0; i < 1000; i++) {
puts("1000");
}
-curl
lud20241225054344ca
このスレへの固定リンク: http://5chb.net/r/tech/1566050562/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

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


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

 ↓「C言語なら俺に聞け 153 YouTube動画>7本 ->画像>4枚 」を見た人も見ています:
C言語なら俺に聞け 140
C言語なら俺に聞け 150
C言語なら俺に聞け 148
C言語なら俺に聞け 151
C言語なら俺に聞け 152
C言語なら俺に聞け 144
C言語なら俺に聞け 145
C言語なら俺に聞け 155
C言語なら俺に聞け 160
C言語なら俺たちに聞け パート0001
CORBAなら俺に聞け
キャンプの事なら俺に聞け! [無断転載禁止]
ホームトレード(HT)のことなら俺に聞け”先物”
LinuxカーネルはC言語なのにオブジェクト指向
パソコンのことなら何でも俺に聞け [無断転載禁止]
機械語なら俺に質問しろ!その2
【SE】「C言語…?どこかで見た程度でOK」 名古屋のアテック、求人広告が話題に エンジニアの人材不足、面白求人でカバーできる?★3
A「C言語・Java言語できます」B「Pythonと統計できます」C「JSについての知識ならだれにも負けない」←お前が面接官だったら誰雇う?
C言語について
C言語に詳しいやつきてや
ソケット通信なら俺に任せろ
C言語でRADって作れるんでしょうか?
久々にC言語触ってるけどクソすぎじゃねこれ
ワイC言語ますたー、何でも質問受け付ける
海外「なんて論理的な言語なんだ」 日本語の構造を簡易化した図が外国人に大好評
1行ずつC言語を書いてくスレ(目標なし)
一つの言語なのに「ひらがな」「カタカナ」「漢字」と3種あるのって日本語だけ?
C言語の設計ミスった危険な関数トップ10決めようぜ
C言語初心者なんだけど配列のポインタに詳しい人ちょっと来て
ネパール、日本の外国人奴隷問題が影響か人気言語1位が韓国語になる
【】流行り廃りはあるけれど、結局C言語に回帰するんだよね。C言語最強なんだよね
【IT】Swiftがトップ10入り、Pythonは3位から4位へ--10月TIOBEの人気言語ランキング
敵「プログラミングはやりたいことを見つけてからやれ」俺「よし見つけたぞ!C言語始めてみよう!」
【IT】開発者7万人に聞く、2018年学んだプログラミング言語第1位は?
ハッカーになろうと思う。C言語最初に学べば良いんだよな?大手銀行の巨額の金を自分の口座に引き抜きたい
【サッカー】<英国>相手チームの給水ボトルに小便…言語道断の行為でミルウォールのファン1名を逮捕!
【企業】「”C言語…?どこかで見た”程度でOK」 名古屋のアテック、求人広告が話題に エンジニアの人材不足、面白求人でカバーできる?
【橋下徹】北朝鮮対策ならヤクザに聞け!インテリはわからないケンカの極意/小林よしのりら自称「保守」はなぜ共産・立憲民主を推すのか
MRの恋愛は俺に聞け(笑顔)!
OpenOfficeでわかんない事は俺に聞け
【プログラミング】止まらないC言語の下落 - 12月言語ランキング [無断転載禁止]
パーソナリティ障害専門 ID:yrsQmqMk ID:EWaqVut9 に聞け
C言語って…
C言語について
C言語が理解できないのですが
道州制は地域性や言語など語り継がれるべき
C言語を教えてください!!
■改竄なら俺にまかせろ(すが)■
■隠蔽なら俺にまかせろ(すが)■
あかりちゃんなら俺にもチョコくれると思う
コンテンツ言語『 Curl 』情報交換スレ
C++とC言語ってどっちの方がいいの?
新コンテンツ言語『カール』って?
「Ruby」が大人気言語になれない理由
C言語でアクションゲームが作りたい
ラズパイ4でc言語開発する方法教えてくれ
C言語始めた。GUIまでたどり着ける気がしない
C言語でツール作ろうと思うんだけど何かいい案ある?
C言語はバイトオーダー等のハードウェア構造を意識しなければ
8ビットCPUでC言語?ないないありえないっしょ!5
C言語を学びたいんやが、まず何からやればいい?
お前らC言語で通信ライブラリ作れって言われたら出来る?
C言語×ダンジョン×学園なゲームを創りたいスレ
インドの公用語ヒンディー語or古代語のサンスクリット語などのマイナー言語勉強してるやつおる?
C言語でTCP/IP通信勉強(プログラミング)したいんだが
12:26:19 up 25 days, 22:50, 0 users, load average: 9.20, 8.82, 8.72

in 3.5273249149323 sec @3.5273249149323@0b7 on 010702