[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/24 02:15 / Filesize : 263 KB / Number-of Response : 1018
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け 159



1 名前:デフォルトの名無しさん mailto:sage [2022/08/04(木) 23:32:27.83 ID:yWVViPyIM.net]
!extend:checked:vvvvv:1000:512
(新スレ立ての際上記コマンドを2行書き込んでください)
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
codepad.org/

C17
www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/n4713.pdf

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

C2x ドラフト
www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.pdf

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

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

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

※前スレ
C言語なら俺に聞け 158
https://mevius.5ch.net/test/read.cgi/tech/1640401906/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

70 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 20:24:47.46 ID:+rK0/pUYd.net]
switchからの脱出がbreakなのがおかしい

71 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 20:48:40.52 ID:SQwD8GPSH.net]
>>69
for からの脱出が break
while/do while からの脱出が break

で、あれば、

switch からの脱出も break であっても不適当とはいえないのではないですか?

72 名前:デフォルトの名無しさん [2022/08/18(木) 23:03:17.54 ID:1nHnTkCL0.net]
行儀良くまじめなんてできやしなかった
夜の校舎窓ガラス壊してまわった
逆らい続けあがき続けた早く自由になりたかった

ひとつだけわかっていたこと
この支配からの~break♪

73 名前:デフォルトの名無しさん mailto:sage [2022/08/18(木) 23:06:15.16 ID:4f/YBTxPM.net]
Javaのswitch式を逆輸入して欲しい
評判が良いのかどうか分からんけど

74 名前:デフォルトの名無しさん [2022/08/19(金) 00:43:51.91 ID:Djh9jYCCa.net]
endfor とか endwhile とか endcase とか悪夢でしかない

75 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 01:50:19.99 ID:FEOcjYNtd.net]
>>70
switchはループ制御文ではないのになんでwhileやforと同じなのか

76 名前:デフォルトの名無しさん (ワッチョイ c202-mhOm) mailto:sage [[ここ壊れてます] .net]
break は今いるブロック (波括弧といてもいい) から一つ外のブロックに出る
という意味を持つ

77 名前:はちみつ餃子 mailto:sage [2022/08/19(金) 09:19:24.91 ID:FT/EuRcZ0.net]
>>75
そんなわけないだろ。

78 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 10:12:45.49 ID:FEOcjYNtd.net]
それならif文からも脱出できるはずだができない
あくまでswitchが特例でループ文扱いされてるので脱出できる



79 名前:はちみつ餃子 mailto:sage [2022/08/19(金) 10:34:49.15 ID:FT/EuRcZ0.net]
switch やループ構文はブロックとは独立した構文で、
これらを使うときにブロックを作らないことも出来るし、
逆に関係ないところでブロックを作ることも出来るので
break をブロックと対応付けさせると変なことになるんだよな。

たとえば以下のコードでの break は実際には switch を抜けるだけなので printf は実行されるが、
ブロックを抜けるほうが自然だと思うか?

#include <stdio.h>

int main(void) {
{
switch(1) case 1: break;
printf("hello\n");
}
}

80 名前:デフォルトの名無しさん mailto:sage [2022/08/19(金) 12:00:39.57 ID:FEOcjYNtd.net]
そんな極端な例でなくても…

case 1:
if( x < 4 ){
………
break;
}
………
break;

普通によく書くと思うが
このif文の中のbreakでもちゃんと一番内側のswitch文の外に飛んでいく

switch(k){

case 1:
{
int tmp_x; //この中だけで使う一時変数
………
break;
}
case 2:
………
}

こんな書き方でも(あまりよくないけど)ブロックは無視してswitch文の外に飛んでいく

81 名前:デフォルトの名無しさん [2022/08/19(金) 18:10:20.82 ID:opjWCie4a.net]
for の中の if の中の break で単に if から脱出されても
おまえなにしとんねん
開いた口が塞がらない状態になる罠

82 名前:デフォルトの名無しさん [2022/08/19(金) 18:16:48.08 ID:opjWCie4a.net]
do{
やりたいこと
}while(0);
っていう構造に変換するマクロは良く使われるが
switch(0) default: {
やりたいこと
}
なんかもアリなんだな

83 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 00:31:59.15 ID:YrrCECg9M.net]
>>81
switchの方は初めて見た!
知らずに見たらちょっと考えちゃうよw

84 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 13:41:46.51 ID:DoG0cN1P0.net]
考えるな
感じるんだ

85 名前:デフォルトの名無しさん mailto:sage [2022/08/20(土) 13:47:51.88 ID:zH67Kdp1d.net]
俺は()で囲むな

86 名前:デフォルトの名無しさん [2022/08/21(日) 07:14:13.14 ID:sPdtHxRX0.net]
エロい人「割り込みの中で関数呼ぶな
なぜ??

87 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 07:26:44.64 ID:calK6kMNd.net]
バカな会社で働いてるから

88 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 07:46:27.87 ID:3JIuIXQv0.net]
>>85
環境によるけど割り込みに専用のスタック使ってるシステムとかだとそのスタックサイズはそれほど大きくなかったりするからかもね
てかそのエロい人に聞けよ



89 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 08:14:56.03 ID:lk6Yo6Bld.net]
再入可能でない関数ならわかるな

90 名前:デフォルトの名無しさん [2022/08/21(日) 09:42:18.04 ID:j3ukytx2a.net]
stack8段しか無いcpuか

91 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 10:25:51.63 ID:calK6kMNd.net]
割込はなるべく速く返さないといけないので
関数呼び出しのオーバーヘッドを嫌うというのもある

92 名前:デフォルトの名無しさん mailto:sage [2022/08/21(日) 16:28:21.98 ID:lk6Yo6Bld.net]
だとすると>>86でFAだな

93 名前:デフォルトの名無しさん [2022/08/22(月) 09:18:01.26 ID:rymTPk3V0.net]
微妙なタイミング調整の_nop()マクロをオプティマイザが勝手に除去するのだがwwwwwwwwww
どうすりゃいいのよ

94 名前:デフォルトの名無しさん (ワッチョイ 7f01-cac/) mailto:sage [[ここ壊れてます] .net]
>>92
インラインアセンブラ
そもそも今時命令実行タイミングに依存する構成にするなよ...

95 名前:デフォルトの名無しさん mailto:sage [2022/08/22(月) 10:11:25.02 ID:xRj4VImad.net]
Z80や6800でそんなことしてたけど
今時のCPUはnopでさえ速度が変動するからな

96 名前:はちみつ餃子 mailto:sage [2022/08/22(月) 10:15:31.51 ID:/BwQkwng0.net]
インラインアセンブラも最適化の対象になることがある。
現代的な開発環境なら intrinsic 関数が提供されてないか?

97 名前:デフォルトの名無しさん [2022/08/22(月) 11:43:22.34 ID:sosiPY3F0.net]
最適化するなよw
そういうのを消すための最適化だろw

98 名前:デフォルトの名無しさん [2022/08/22(月) 13:53:48.03 ID:KX6mg0Ola.net]
最適化したら >>96 が消えました



99 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 11:33:41.80 ID:sT5+wQDE0.net]
インライン記述じゃなく別個にアセンブラソースファイルに書いてアセンブルしろってことだな。

100 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 11:49:07.60 ID:iqB4j8J+0.net]
スカイネット 「環境の最適化のため、人類を消去しました」

101 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 13:23:55.27 ID:sT5+wQDE0.net]
環境の最適化のためにスカイネット自身の消去が最適だとなったら実行するのかね。

102 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 16:20:32.32 ID:WIrE9pd90.net]
組み込みでは下みたいに使った
__asm__ __volatile__()

103 名前:デフォルトの名無しさん mailto:sage [2022/08/25(木) 20:06:49.61 ID:PyYJPp//d.net]
>>99
スカイネット「あれっ、誰に報告してんだろ…私ったら(テヘ)

104 名前:デフォルトの名無しさん mailto:sage [2022/08/26(金) 06:44:51.10 ID:DLmHAhGrd.net]
>>100
i cannot self-terminate.て言ってたね

105 名前:デフォルトの名無しさん [2022/09/04(日) 05:09:23.47 ID:wx4H3U1ta.net]
Learn C Programming with Dr. Chuck (feat. classic book by Kernighan and Ritchie)
freeCodeCamp.org
チャンネル登録者数 619万

106 名前:デフォルトの名無しさん [2022/09/04(日) 10:23:39.44 ID:RQxkFcRFa.net]
>>104
1本で9時間超えてるのかすげー

107 名前:デフォルトの名無しさん [2022/09/04(日) 19:10:32.17 ID:Rodv+P070.net]
C言語のサンプルコードで関数内で関数プロトタイプ宣言するコードに出くわしました。
コンパイル通らないだろうと思って、clangで下記のような関数内に関数プロトタイプ宣言する
コードをコンパイルするとエラーなく通りました。

C言語において関数内でプロトタイプ宣言をする利点というか理由というのはどういうものがあるのでしょうか。

#include<stdio.h>

void hello(void)
{
printf("%s\n","hello world");
}
int main(void)
{
void hello(void);
hello();
return 0;
}

108 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 21:54:56.70 ID:moKhjs2Z0.net]
>>106
私見だけど、その関数内でのみ呼び出すことを強調しているのかもしれない。

あと余計なこと。お遊びのネタ。本番で使うなキケン。
GCC拡張には関数の中で関数を定義できる機能がある。clangはこの先もおそらくサポートしない。
詳細が気になるなら gcc trampoline nested function で調べてね。



109 名前:デフォルトの名無しさん mailto:sage [2022/09/04(日) 22:27:57.67 ID:KVirSSMD0.net]
main内の void hello(void); てプロトタイプ宣言(?)意味あんの?

110 名前:デフォルトの名無しさん [2022/09/05(月) 01:27:33.63 ID:TNrcEOZR0.net]
具体的に言うと、ここの
『UMLの状態遷移図をC言語のStateパターンで実装&単体テストしてみる』というタイトルのブログの

void init_last_substate(FSM *fsm);
関数のプロトタイプ宣言です。State.c内でプロトタイプ宣言すればいいのに
なぜかState.c内のState_init関数内でプロトタイプ宣言しているのはなんでかなと。
実装自体はSubState.c内で定義されているのでState.c内で使うのであれば
プロトタイプ宣言が必要であることはわかるんですが、なんで関数内でプロトタイプ
宣言しているのかなと。

111 名前:はちみつ餃子 mailto:sage [2022/09/05(月) 01:31:45.75 ID:QNR7HRCU0.net]
>>106
言語仕様にもある有効な文法だけれど、それほど使われることはない。
宣言はそのスコープで有効になるから直接的な理由としては >>107 が述べている通り限られた範囲での使用を想定しているということだと思う。
範囲を限りたいのが何故かなのかというのはプログラム全体の構成によるので全体を見ないと意図を推し量ることは出来ない。

なので正確な事情はわからないけども、あえて一例として私がそういう書き方をするとしたらという前提で空想すると
 ・ あまり色々なところで呼ばれたくない関数がある
 ・ しかし呼び出し箇所は他の翻訳単位にあるので内部リンケージにすることも出来ない
というようなときにはヘッダにもファイルスコープにも宣言を書きたくないと思うことはあるかもしれない。

112 名前:デフォルトの名無しさん [2022/09/05(月) 01:40:28.48 ID:TNrcEOZR0.net]
>>110
確かにそのコードはstatic宣言を各所に織り交ぜており、他ファイルからは関数が
呼び出せないようにしてありました。公開する関数は最小限にという感じ。

関数内でも関数のプロトタイプ宣言できるというのも、C言語の中では単なる変数宣言
double p;
と同じ扱いみたいに考えればいいのかもしれないと思いました。
typedef で関数型定義できますが、それと同じような扱いということです。

とりあえず納得しました。ありがとうございます。

113 名前:デフォルトの名無しさん mailto:sage [2022/09/05(月) 04:58:10.54 ID:YC0Agv6v0.net]
>>106
理由は昔のいわゆるK%R Cの名残だ

main(argc, argv)
char **argv;
{
extern printf(), exit();
auto i 0;
for ( ; i < argc; i =+ 1)
printf("%s\n", argv[i]);
exit(0);
}

114 名前:デフォルトの名無しさん mailto:sage [2022/09/05(月) 04:59:26.44 ID:YC0Agv6v0.net]
今そんなことをする必要は皆無

関数の実体がグローバルなのに
宣言がローカルなのは合理性を欠くだけ

115 名前:デフォルトの名無しさん (ワッチョイ 27bb-Iguz) mailto:sage [[ここ壊れてます] .net]
staticじゃなけりゃどこからでも呼べるからな

116 名前:はちみつ餃子 mailto:sage [2022/09/05(月) 11:16:15.22 ID:QNR7HRCU0.net]
そこらへんはプログラム的な都合だけでなく読む人に対しての意思表示という場合もあるから必要性だけで解釈することは出来ないよ。
今から書くプログラムではやめといたほうが良いが、この場合は今、目の前に実際にそう書かれているものがあるという話だから……。

117 名前:デフォルトの名無しさん mailto:sage [2022/09/05(月) 12:45:24.21 ID:NIl1ZTkW0.net]
何か古い記述方法だった気がする

118 名前:デフォルトの名無しさん [2022/09/05(月) 17:10:39.70 ID:BqjHubPk0.net]
何十年も前の機種依存C言語かもな



119 名前:デフォルトの名無しさん mailto:sage [2022/09/05(月) 21:43:16.79 ID:WAs1jsMo0.net]
古い表記を引っ張ってきたのか
意思表示としてそう記述した(可能性が高い)のか
全て俯瞰してみないとい結論は出ないだろうが
そうできたところで、自分が使うことはないだろうといった代物

120 名前:デフォルトの名無しさん [2022/09/05(月) 22:13:22.67 ID:hTc6qxUq0.net]
うむ。ないなあ。

121 名前:デフォルトの名無しさん (アウアウウー Sa8b-Ro21) [[ここ壊れてます] .net]
namespace ってイマドキの C にあるの?

122 名前:デフォルトの名無しさん mailto:sage [2022/09/06(火) 10:01:27.84 ID:8iFyZ+3k0.net]
ない

123 名前:デフォルトの名無しさん mailto:sage [2022/09/06(火) 20:11:23.99 ID:OXwnsseu0.net]
今度の規格には static_assert は入るのでしょうか?

124 名前:はちみつ餃子 mailto:sage [2022/09/06(火) 20:15:43.73 ID:TAdoM7Dg0.net]
>>122
C23 に static_assert は入る。
C11 から _Static_assert が有ったけどこれも Alternative Spelling として残る。

125 名前:デフォルトの名無しさん [2022/09/07(水) 01:40:32.73 ID:nFqp2Ghc0.net]
構造体の一括初期化の仕組みがよくわかりません。
#include<stdio.h>
enum Flag { First = 1, Second = 2, Third = 3, Finish = 4 };
typedef struct _FSM {
size_t eof;
size_t bytes;
size_t flags;
} FSM;
static FSM initState = { 0, 0, First};

void FSM_init(FSM *self) {
self = &initState;
}

int main(void) {
FSM fsm;
FSM_init(&fsm);
printf("%zu", fsm.flags);
return 0;
}
とFSM_initでFSM構造体のメンバの初期化を行おうとしたのですが、fsm.flagsにはゴミの値が入ってしまいます。
&self = initState;ではなく一つ一つ所属物を初期化すればちゃんと初期化できるのですが、
できればこの一括で初期化する方法のどこがまずいのか教えてほしいです。

126 名前:デフォルトの名無しさん [2022/09/07(水) 01:42:03.54 ID:nFqp2Ghc0.net]
肝は
static FSM initState = { 0, 0, First};
でここの初期化がまずいみたいですがよくわかりません。

127 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 01:45:22.24 ID:n6FjKa3l0.net]
*self = initState;

128 名前:デフォルトの名無しさん [2022/09/07(水) 02:03:29.87 ID:nFqp2Ghc0.net]
>>126
うまくいきましたが、すいません。
*self=initState;

self = &initState;
の違いがわかりません。
ポインタに対してなんでアドレスを渡す形だとまずいことが理解できません。



129 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 02:27:51.81 ID:FvUlSDCrd.net]
>>127
>self = &initState;
selfはアドレスをコピーした仮引数

130 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 03:14:26.39 ID:7wpEGaL10.net]
*selfはselfの実体の参照
&initStateはアドレスの参照

131 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 07:32:36.16 ID:UR0dF6Y90.net]
>>127
self = &initState;
これはポインタ変数selfにinitStateのアドレスを代入するが
このままFSM_init関数から戻っているので、代入結果が即座に破棄され
何もしていないに等しい

*self = initState;
これはポインタ変数selfが指し示す先つまり構造体変数fsmに
構造体変数initStateの内容を転記する
FSM_init関数から戻ってもmainの変数fsmは残っているので
後続のprintf関数の実行結果に反映される

132 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 09:54:43.70 ID:S6Oj2ikO0.net]
void func(int a) { a = 10; }


133 名前:
int b = 50;
func(a);

とやっても a は 10 にならず a は 50 のまま
関数引数の型のままの書き戻しは 呼び出し元に反映されない
これを int → int * に読み替えた場合が質問のケース
[]
[ここ壊れてます]

134 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 10:01:21.59 ID:S6Oj2ikO0.net]
訂正
 int b = 50;
 func(b);
 とやっても b は 10 にならず b は 50 のまま

135 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 10:16:34.68 ID:S6Oj2ikO0.net]
・ポインタを渡して関数内ではその指し先を利用して内容を書き換える (scanf みたいな感じ)
・戻り値で内容をどかっと戻す (=呼び出し元で代入してね)

Cの文法ではこの2パターン

136 名前:ハノン mailto:sage [2022/09/07(水) 20:35:02.84 ID:DxyXj8J8H.net]
>>127
参照 & は「ポインタで書くやりかた」の見せ方を変えただけ、と考えるのがいい
すなわち、ポインタを使った書き方に習熟しないかぎり、参照の意味はわからない
参照をポインタから切り離して理解するのは不可能

参照がわからなければ、まず、ポインタを使った書き方ばかりで書きまくり、ポインタなら自信がある、くらいになるのがいい
参照はポインタを理解してからはじめて使い始めるべきもの

137 名前:デフォルトの名無しさん [2022/09/07(水) 21:11:00.47 ID:nFqp2Ghc0.net]
>>134
いやさすがにそこはわかるんで・・・。

ポインタ変数を格納している仮引数に新しいアドレス値を代入しても
関数から出たら破棄されるので意味ないってことやね。
ポインタ変数宣言してたんで勝手に実体参照されるものかと思ってた。

当初fsm構造体のメンバにstateという構造体の変数をおいてそれを初期化していたので、
fsm->state = &initState;
だとうまくいくのになんでだろうと思って聞いた。
この場合、fsm->stateで実体参照しているわけやね。

138 名前:デフォルトの名無しさん [2022/09/07(水) 22:08:19.73 ID:nFqp2Ghc0.net]
FILE *fp;
errno_t err;
err = fopen_s(&fp, "file.txt", "rb");
でfopen_s関数の場合、第一引数はFILE構造体のポインタのアドレス参照したものを
渡さないといけないですが、これなんでポインタじゃまずいんですか。



139 名前:デフォルトの名無しさん (ワッチョイ e710-q8Yd) mailto:sage [[ここ壊れてます] .net]
ポインタに入ってる数値を書き換えるからそうじゃなきゃ変えられないでしょ
fopenの中でメモリ確保しててそのポインタの数値を確保したアドレスに書き換えてるの

140 名前:ハノン ◆QZaw55cn4c (US 0Hff-KcK1) mailto:sage [[ここ壊れてます] .net]
もっとも、私は pascal から入ったから、ポインタなくして参照を理解していた人なのではありますが‥‥うーむ

141 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 22:31:50.29 ID:gjYyI5to0.net]
ポインタのアドレス取ったときとかポインタのポインタでごちゃごちゃになる人は
とりあえずポインタは整数を保存してるだけって考えればいいよ
整数を関数内で書き換えるためにはそれをポインタ渡しする必要があるので参照演算子つけて渡すの

142 名前:デフォルトの名無しさん [2022/09/07(水) 23:04:25.54 ID:nFqp2Ghc0.net]
>>137
なるほど。
FILE *fp の中身が0というアドレスで、
fopen_sの中で例えば123456というアドレスに変更したいんだったらポインタ自体渡しても
変更できないことですね。*つけてポインタにならないと変更できないと。

143 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 23:32:06.28 ID:zeO2o007M.net]
int hoge(int *a) { *a = 1; }
int hoge(int &a) { a = 1; }
これが全く同じアセンブリ言語にコンパイルされるのを見て、参照を理解した

144 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 23:35 ]
[ここ壊れてます]

145 名前::11.50 ID:nFqp2Ghc0.net mailto: >>141
int hoge(int &a) { a = 1; }
関数定義でアドレス演算子使えるんですか?
[]
[ここ壊れてます]

146 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 23:39:24.34 ID:nFqp2Ghc0.net]
何回も質問しているものです。
base64エンコーディングのプログラムを作っていました。
エンコード部分は作れた、と思ったのですが、certutil -f -encode の結果と
突き合わせると後半合いません。
1行目もなぜか幅が合いません。
状態マシンを初めて作って実装したのでどこが問題かわからないのでだれか見ていただけませんか。

https://ideone.com/rPlXWX

147 名前:はちみつ餃子 mailto:sage [2022/09/07(水) 23:39:37.84 ID:51dNe1to0.net]
>>142
それは C++ の機能の話ね。
機械語にされたときの実体としては参照はポインタと同じことをしている。

148 名前:デフォルトの名無しさん mailto:sage [2022/09/07(水) 23:41:02.70 ID:nFqp2Ghc0.net]
最初の付近はうまくエンコードされているんですが、途中でごみの値が入ってくる
ようでずれてきます。どこにゴミが入っているのかわかりません。



149 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 00:50:34.87 ID:0dKPxAYF0.net]
tmpfile()で作られる作業ファイルはどこに作られますか?
/tmpですか?
なんかそれらしきファイル無いんですが

OS:Linux Mint

150 名前:はちみつ餃子 mailto:sage [2022/09/08(木) 01:00:19.58 ID:MG9wnc1h0.net]
>>146
glibc だと P_tmpdir が使われた上で失敗したら /tmp に作る。
musl だと /tmp に決め打ち。
作ったファイルはクローズするかプロセスが終了したら削除される。

151 名前:143 mailto:sage [2022/09/08(木) 02:30:52.24 ID:MgWIrRAL0.net]
コードの構造が自分でもわかり難かったので、フルスクラッチで書き直しました。
https://ideone.com/ddQPJy

でも相変わらずどこかにゴミデータが入り込んでいるようです。
C言語特有の問題に由来していると思うのですが。。

152 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 02:56:32.93 ID:m+If4M0FM.net]
>>148
上から下までスクロールしたら一瞬で分かったw

153 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 08:55:08.15 ID:0dKPxAYF0.net]
>>147
サンクス
読み書きは出来るので作業ファイルは作られているんだろうけど・・・
getchar()でプロセスが終了しないようにしててもP_tmpdirの場所(/tmp)に作業ファイルは作られてないわ

なんかモヤモヤするな

154 名前:はちみつ餃子 mailto:sage [2022/09/08(木) 09:15:06.66 ID:MG9wnc1h0.net]
>>150
3.11 以降の Linux カーネル、かつファイルシステムのサポートがあれば名前のないファイルを作るということらしい。
他のプロセスからは観測することが出来ない。

155 名前:デフォルトの名無しさん (アウアウウー Sa8b-Ro21) [[ここ壊れてます] .net]
>>143
3の倍数と4の倍数でずれるから
穴埋め方法の仕様嫁

156 名前:デフォルトの名無しさん (ワッチョイ e769-9TNW) mailto:sage [[ここ壊れてます] .net]
8bit目が立ってるデータだと char を size_t にキャストするとよろしくない可能性
あと末尾のパディング処理

最新は rfc4648 か

157 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:12:47.05 ID:dSUuwrfW0.net]
>>148
わざわざenum定義してるのに使うための変数をsize_tで宣言するとか意味わからんw

158 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:22:53.70 ID:dSUuwrfW0.net]
>>150
作った直後にunlinkすれば他のプロセスからは見えなくなるしプロセスが異常終了したら勝手に削除されるからunixの時代からテンポラリファイルのtipsとして有名だよ
https://sonic
64.com/2004-12-07.html



159 名前:はちみつ餃子 mailto:sage [2022/09/08(木) 10:30:42.77 ID:MG9wnc1h0.net]
>>148
主旨とはずれるが……

下線で始まる識別子はファイルスコープで予約されている。
下線で始まって大文字が続く識別子は常に予約されている。
予約されている識別子についてなんらかの宣言・定義した結果は未定義。
入門用の解説でやってることもよくあるけど真似しちゃ駄目。

構造体タグは使わないなら省略してしまったほうがよいと思う。

160 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:34:35.91 ID:0dKPxAYF0.net]
>>150
>>155

ありがとう!すっきりした

161 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 10:35:11.25 ID:0dKPxAYF0.net]
>>150>>151

162 名前:デフォルトの名無しさん mailto:sage [2022/09/08(木) 23:34:00.51 ID:QimgDhZ1M.net]
>>148
解決したのか知らんけど、freadが必ずBUFSIZE分読み込むとは限らんぞ
なので、直後のforループはnreadまでにしないとゴミを処理してしまう

163 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 00:38:56.32 ID:eFldOldK0.net]
>>159
ありがとう。まだ未解決。格闘中。
なんとかそこには気づいたんですが、どうすればeofまでの分読み込ませればいいかわからず、
結局1バイトづつ読み込ませるしかないのかと思ってましたが、nread分読み込ませればいいのか。
ただ、最終行以外もゴミデータが紛れ込んでいるようなのでそこの原因がなんなのか。

164 名前:148 mailto:sage [2022/09/09(金) 01:45:37.54 ID:eFldOldK0.net]
読み込むデータによってゴミデータが入ったり入らなかったりすることがわかった。
すごい厄介なバグだわ。某所から2進数表示する関数パクッて全部表示させてみると
ある特定の箇所でスタックデータが0b11111....に初期化されているみたい。

https://ideone.com/HRogms
読み込みデータはこのプログラム”base64s.c”だとこの現象がでる。
何がまずいのかな。

165 名前:148 mailto:sage [2022/09/09(金) 01:56:18.41 ID:eFldOldK0.net]
わかった。日本語部分が処理できてなかったことが原因だ。

vscodeでWindows、clangでコンパイルしているんだけど、freadで単純に読み込んで
出力すると日本語部分が文字化けしてしまうのはなぜ?

166 名前:148 mailto:sage [2022/09/09(金) 01:57:45.15 ID:eFldOldK0.net]
1バイトで読み込んでるから2バイト文字がうまく読み込めないということかな?

167 名前:148 mailto:sage [2022/09/09(金) 02:04:19.38 ID:eFldOldK0.net]
1バイトづつバイナリデータを読み込みしたかったので、fread(buf,...)の
bufは
char buf[BUFSIZE];
で宣言したのですがここが2バイト文字のバイナリ読み込むときにまずいんでしょうか。

単純に自分自身のコードを読み込んで標準出力に書き込むと文字化けする。
https://ideone.com/GvpcAm

010111....のビット列を単純に書き込んでいるという理解だったのですが、
そういうわけではないんですかね?

168 名前:デフォルトの名無しさん [2022/09/09(金) 02:19:22.29 ID:V/M3y8c30.net]
>>153が正しい
size_t stack = (size_t)(unsigned char)c;



169 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 02:52:44.78 ID:eFldOldK0.net]
>>165
スタックデータが11111・・・に初期化されるという問題は直りました。
charだと11111111の取り扱いまずいんですね。
char 0~255 の値を格納できるという素朴な理解で使ってたんですが、
unsigned char と char ってどう違うのか、ざっと調べたんですけどよくわかんないですね・・・。

170 名前:148 mailto:sage [2022/09/09(金) 02:53:47.99 ID:eFldOldK0.net]
>>153
読み返してみると鮮やかですね。昨日の段階では何のことやら?って感じでしたが。
ありがとうございます。

171 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 03:37:48.54 ID:JkEyHRIQ0.net]
>>166
>unsigned char と char ってどう違うのか

unsigned charは符号なしで値域は 0 ~ 255
signed charは符号ありで値域は -128 ~ 127

charは処理系依存でsignedかもしれないしunsignedかもしれない
他の整数型にキャストしたり比較したりする時は特に注意が必要

172 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 06:49:36.79 ID:Cx7xgzBv0.net]
>>168
char は 8bit とは限らん、というのは置いといて
> charは処理系依存でsignedかもしれないしunsignedかもしれない
charはsigned charやunsigned charとは違う型だよ
https://www.jpcert.or.jp/sc-rules/c-str04-c.html

173 名前:デフォルトの名無しさん [2022/09/09(金) 10:32:00.65 ID:PQbAFFlG0.net]
数値と文字コードの認識の違いはどこらへんに出てくるのでしょうか?

174 名前:デフォルトの名無しさん [2022/09/09(金) 16:58:25.15 ID:ZqL3j+SP0.net]
環境依存によるとこが多すぎて、その都度環境に応じて調べるしかない
プログラム全般に言える事

175 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 20:26:03.68 ID:wh55t5+tM.net]
文字はutf-8でも一文字が数バイト必要な事があるので、charはもはや要らない子と言える
バイト列を使いたければuint8_tを使って、ちゃんと文字として扱うなら、wchar_tとかchar32_tを使うべきだろうね

176 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 20:34:47.77 ID:AfgZ2PrAM.net]
なお中国や日本、韓国などに限る

177 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 21:21:58.31 ID:CwUslwUl0.net]
wchar_tこそ要らない子やん
お前一体何バイトなんだよ

178 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:02:27.43 ID:JkEyHRIQ0.net]
>>169
>char は 8bit とは限らん、
うん、その指摘はされると思ってた。
>charはsigned charやunsigned charとは違う型だよ
なるほど、その認識はなかったは。



179 名前:デフォルトの名無しさん mailto:sage [2022/09/09(金) 23:22:11.84 ID:qKP12tcq0.net]
自分はvb→C言語→機械語だけど
機械語知らないとダメだよなって思ったわ
大体CPUの仕様と合わせるんだよな
8bitも昔のCPUの慣習出しさ
だからプレステのCPU大好きとかライゼンサイコー、いやいややはりインテルだろう
なんて言う自作オタがやり始めるとかなり速いんだよな
自作PCの構造はCPUの中身に似てるから

180 名前:デフォルトの名無しさん mailto:sage [2022/09/10(土) 00:37:03.60 ID:d6i83HiwM.net]
>>174
Windowsだと2byteでLinuxだと4byteだな
しかしバイト数を気にしてはいけない
気にしなければ可搬性のあるコードを書ける

181 名前:148 mailto:sage [2022/09/10(土) 02:16:33.70 ID:bSy2C3T30.net]
文字化けのところは手に負えないですが、おかげさまでbase64エンコーディングプログラムが完成しました。
ここで言われたことは全部含めてみました。
構造体のタグ、enum型、charじゃなくてuint8_t、終端処理など。

https://ideone.com/7wolLZ

コードが汚いなど直すところありましたらどしどしご意見ください。
とりあえず、最初に使ってみる言語はbase64エンコーディングプログラムを組んでみて
なれてみようという方針なので。
次はVBAで組んでみるか、sha256プログラムをC言語で組んでみようか考えてます。

182 名前:デフォルトの名無しさん (ワッチョイ adc2-+Wio) mailto:sage [[ここ壊れてます] .net]
struct tmって、冗長な設計になってるよね
たとえば tm_mon == 1 && tm_mday == 1 なら tm_yday == 0 のはずだけど tm_yday >= 1 にもなれる
こういう矛盾がある場合の扱いって規格票のどっかに書いてあったっけ?

183 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:26:36.00 ID:Y1sYJFelM.net]
たとえば規格書のmktimeにはカレンダー時間で表現できなければ-1を返すって書いてあるかそう実装するのが正しそうだけども

184 名前:はちみつ餃子 mailto:sage [2022/09/11(日) 14:31:15.93 ID:D/VbhUuk0.net]
>>180
tm_yday は無視するとも書いてあるぞ。

185 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:32:58.51 ID:LP1WepGR0.net]
レス㌧x

カレンダー時間で表現できるか否かということは
tm_year, tm_mon, tm_mdayのことで、tm_ydayには該当しない議論だよね
逆にtm_ydayに合わせるように補正はしないとなると
ここに優先順位があるのかな

186 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:34:54.92 ID:LP1WepGR0.net]
すまん、ちょっと外出する
夜には戻る

187 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 14:37:22.22 ID:Y1sYJFelM.net]
あらほんとだ。戻り値の説明しか見てなかったわ

188 名前:デフォルトの名無しさん mailto:sage [2022/09/11(日) 15:00:19.15 ID:hGIJSvzu0.net]
>>182
そもそもtm_wdayとtm_ydayは更新されるって書いてあるし
関係ないけど
・tm_mday: 1 から 31 の範囲の日付。
・tm_mon: 1 月からの月数 (0 から 11 の範囲)。
なのは毎回もやるわ、なぜ両方0スタートじゃないのか...



189 名前:はちみつ餃子 mailto:sage [2022/09/11(日) 15:04:45.97 ID:D/VbhUuk0.net]
>>185
月は (英語では) 月の名前に置き換える (配列から名前を引く) という都合から自然にそうなったという説は聞いたことがあるな。
日は番号をそのまま表示するもんだから最初から番号通りのほうが都合がいいし。

190 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 17:53:22.84 ID:gNCVLuZy0.net]
ローカル変数の宣言で、宣言しようとしているポインタの初期化子に、同じ文で
宣言された変数を参照するのは規格上OKですか?

/* test1.c */
1 | int main(int argc, char **argv)
2 | {
3 | char s[100] = {'A'}, *p = s;
4 | int i = 10, *a[10] = {&i};
5 | return 0;
6 | }

最新の gcc で試したところ、-std=c89 -pedantic の場合に下記の警告が出ます。
特に3行目が OK で、4行目が駄目な理由がよく分からないです。
どちらもスタック上の相対位置はコンパイル時に決まると思うのですが。
Cの文法について詳しい方、教えてください。

gcc --version
gcc (GCC) 12.2.1 20220819 (Red Hat 12.2.1-1)

gcc -O0 -std=c89 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c
test1.c: In function ‘main’:
test1.c:4:27: warning: initializer element is not computable at load time [-Wpedantic]
4 | int i = 10, *a[10] = {&i};
|            ^

gcc -O0 -std=c99 -pedantic -Wall -Wextra -Wno-unused-parameter -Wno-unused-variable -c test1.c
警告なし

191 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 20:06:58.44 ID:C6syfEgyd.net]
C99より前は集成体(配列、構造体)に対する初期化子定数式(アドレス定数式)でスタックは認められていないっぽい
3行目の初期化対象は配列じゃないでしょ

192 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 06:50:50.62 ID:jyhWPRLZ0.net]
int main(void)
{
int a = a;
}
これもOKなんだが

193 名前:デフォルトの名無しさん (スッププ Sd0a-39XR) mailto:sage [[ここ壊れてます] .net]
>>189
スタック上のアドレスを使ってポインタを初期化できるかって話だろ

194 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 19:31:34.25 ID:alBs0lLWd.net]
>>187
{&i}だけだったら初期化は簡単だけど
その書き方だと本来{&i,&グローバル変数,NULL...}などと書けるのでそうなると特殊な初期化が必要になるんじゃないかな

195 名前:デフォルトの名無しさん mailto:sage [2022/09/16(金) 19:59:25.14 ID:u2ZYVkG20.net]
一見
スタックに実体をもつ配列の先頭はセーフで (3行目)
スタックに実体をもつ変数のポインタはアウトというふうに見えるけど (4行目)
{ } の中か否かの差もあるんやね

196 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 00:57:57.08 ID:GfZyyjDu0.net]
>>190
そんなん言い出したら自動変数をポインタで指せるのかさえ怪しくなってくるな

197 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 12:49:57.03 ID:fh691Hyrd.net]
スコープ内でアドレスが参照されたならば
自動変数はレジスタ変数にはならなくなる
「自動」の意味

198 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 19:52:14.52 ID:fgoWI+8da.net]
win10(以下win)
strawberry perl入れた時一緒にいれたgcc

wsl
ubuntu22.04 gcc

どっかでみた配列関係のサンプルで
(間違えるとnull見つかるまで一生探し続けるよ的なコード)
で試したら

winで値がおかしい
linuxで正しい

とりあえずwin側でgdbで見ると
winで格納アドレスが逆順になってました
例えばコード上で

array1うんたら
array2かんたら

とあって
array2がアドレス100番台
array がアドレス200番台
みたいになってました
この挙動は環境依存なのかバグなのか知りたいです

まぁ結局両方windowsなんですが



199 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 19:56:51.12 ID:ZRyqS0700.net]
ネットワークオーダーとかエンディアンとかが絡んでる可能性はあるけど、コードを見ないとなんとも

200 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:03:08.34 ID:PxOaZq6Kd.net]
>>195
抽象的すぎて全然わからんw

201 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:04:45.56 ID:fgoWI+8da.net]
コードは
https://www.delftstack.com/ja/howto/c/length-of-char-array-in-c/
手入力でミスってたらごめんなさい

202 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:08:18.29 ID:fgoWI+8da.net]
因みにこっちのwin環境だと
上サイトで24byteになるはずの所が10byteになります

203 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:22:45.77 ID:ZRyqS0700.net]
strlenのことか?
文字列と違ってchar配列の末尾には自動的にnull挿入されたりしないから、nullまで数え上げるstrlenが何を返すかわからないし、環境によってはメモリアクセス違反で落ちるかも

204 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:26:08.77 ID:fgoWI+8da.net]
いや多分違います

アドレスが逆

多分ここが重要なんですがその原因が
と言うところです

205 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:44:25.86 ID:LY5v/fLv0.net]
環境依存です
ゼロで終端されていないものにstrlenを呼んではいけません
そのコードが誤り

206 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:51:16.94 ID:I+4Vfslra.net]
うーん
そう言うことじゃなくて・・・
なんでメモリアドレスの格納が逆になるの?
と言うところです
cの規格的な話じゃなくてですね・・・

207 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 20:58:26.77 ID:LY5v/fLv0.net]
そのページを作った人の環境(コンパイラとバージョン)ではarr,arr2の順で
あなたの環境ではarr2,arrの順なんでしょ
たまたまそうなっただけです

208 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:10:35.35 ID:I+4Vfslra.net]
文系脳で行き着く先っていつもそうなんですよね
でも残念ながら「それ」がないんですよ
この世界

たまたま
なんかわかんないけど
偶然
楽しけりゃいいじゃん

なんで生きてるのお前?

馬鹿は嫌い 回線で首でも吊ってろカスが

ジパング馬鹿しかいないからもう寝る



209 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:15:00.75 ID:W7nqA9Zmd.net]
オタクくん怒って寝ちゃったw

210 名前:デフォルトの名無しさん [2022/09/17(土) 21:44:56.47 ID:njcq0eeLa.net]
スタックはアドレス高位から低位の方向に積まれることが多いから、arr2のアドレスがarrのそれより小さくなるとかですかね

211 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 21:46:48.25 ID:aOSn8JHC0.net]
そういう人を落とし込める記述はやめよう

212 名前:デフォルトの名無しさん mailto:sage [2022/09/17(土) 23:27:39.41 ID:eA0eWCp60.net]
スタックの方向などは環境依存だろ

環境依存は他にも、little/big endian とか、
char が、0〜255, -128〜127 のどちらなのかとか

文字コードが、BOM 無しUTF-8 以外とか

213 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 01:46:10.06 ID:3xNGEVex0.net]
gdbの使い方、ここで質問してもいいですか?

214 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:19:18.49 ID:OVhdQ/fk0.net]
>>210
大きく言語自体から脱線するようだとあまりよくないかなと思うけど、
ささいなことなら多少は良かろうと思うし、程度次第じゃね。

215 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:40:43.36 ID:3nFqfKLUH.net]
>>209
UTF-8 に BOM は本質的に不要です
なぜならば BOM = Byte Order Mark ですが、UTF にバイトオーダーなど存在しません
BOM なし、と断ること自体、頭が悪い証拠を如実に表出していると愚考させていただきます

馬鹿は死ね

216 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 02:43:34.57 ID:Z+lYrLLqa.net]
はじめてのC言語完全入門!【Hello World〜ポインタまで徹底解説】
91,121 回視聴
freeCodeチャンネル

217 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 03:28:52.56 ID:OVhdQ/fk0.net]
>>212
BOM はエンコード方式の識別に使われる場合もあると公式 (unicode consortium) の資料に書かれている。
BOM が BOM という名前である以上は本来の用途からの転用ではあるが、
バイトオーダーだけを根拠にして不要と断じるのはエンジニアリング的に良い姿勢ではないな。

218 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 04:26:41.31 ID:GkyrVNWr0.net]
>>212
いい大人がバカとか4ねとか言ってるの見ると悲しくなってくるわ
人付き合いをろくにしてこなかった精神的にガキのおっさん痛すぎる



219 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 05:15:19.35 ID:fdsnSmbGd.net]
>>205
めちゃくちゃだよアンタw
文系ポエムは他でやんなさい

220 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 05:26:48.38 ID:fdsnSmbGd.net]
>>205
よく見るとそのページ内容がむちゃくちゃだなw
データが格納される順番はコンパイラ依存なのでそんなサンプルコードは作ってはいけない

「まず、arr のオブジェクトサイズは 24 バイトと表示されますが、」じゃねえよw
「内部の詳細を無視してしまうと恐ろしいエラーが発生する可能性があります。」もう起こっているw

以上

221 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 10:38:22.56 ID:kY5VkQwD0.net]
>>198
そもそも上のコード
size = 24 bytes
size = 17 bytes
この2つはどこから出てきたんだ?
printCharArray のあとの printf("size = %lu bytes \n", ... ); はひとつしかないのに

>>195
array1とarray2がそれぞれスタックに積まれるなら array2、array1の順は正しいし
array1とarray2がリテラルとしてコード上に存在するならarray1、array2の順は正しい
ただの最適化の問題じゃないのか

222 名前:デフォルトの名無しさん [2022/09/18(日) 13:53:49.44 ID:KpBP36NGa.net]
文系は全称と単称の区別が出来ない
大抵の馬鹿はこれで判別出来る

223 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 14:04:23.72 ID:CIgAfYZs0.net]
そういう表現も、大体根拠が希薄
血液型占いと同程度

224 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 14:12:29.01 ID:Rev08jtKa.net]
>>203
規格では一切順序の保証はないので
同じ結果が欲しければそのぺーじと同じ環境を用意してください

225 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 18:22:49.00 ID:JcdidFMxd.net]
機械翻訳まるだしだし
Pythonのおまけで載ってるだけだから
そんなページあてにするなとしか

226 名前:デフォルトの名無しさん [2022/09/18(日) 18:23:22.20 ID:rN2/Bhfe0.net]
>>212
Windowsのメモ帳でUTF-8で保存するとBOMが先頭に入った状態になるよね。
そういう変な出力をするソフトがあるせいでUTF-8なのにBOMの有無を意識しなきゃいけなくなるんだよ。

227 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 19:08:21.37 ID:OVhdQ/fk0.net]
>>223
UTF-8 ではない形で保存されている可能性はいつでもあるわけだが……。

228 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 19:35:00.75 ID:CIgAfYZs0.net]
メモ帳で保存する場合、選択はこの中から

https://i.imgur.com/eJf3vLE.png



229 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 20:14:09.21 ID:tcByEu8Hd.net]
wcharはutf8圧に負けて廃れるんかね
Cのようなロートル言語使ってると固定幅(但し幅は決まっていない)エンコの有り難みをひしひしと感じる

230 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 21:11:58.46 ID:/3elu/X80.net]
ストレージはutf-8
メモリーはwchar_t
じゃね?

231 名前:デフォルトの名無しさん [2022/09/18(日) 22:03:00.04 ID:rN2/Bhfe0.net]
>>225
それでBOM付き選んじゃうやつが居るんだろうな。選択肢無くして欲しいものだ。

232 名前:デフォルトの名無しさん [2022/09/18(日) 22:05:23.89 ID:rN2/Bhfe0.net]
>>226
入出力でJavaみたいに変換すれば良いじゃん。
iconvライブラリとか使って。

233 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 22:23:37.69 ID:zhWgY60z0.net]
>>229
ふぇふふ…

234 名前:デフォルトの名無しさん (ワッチョイ 9f2c-ret5) mailto:sage [[ここ壊れてます] .net]
メモ帳は、BOM 付きUTF-8 になるから、ダメ

BOM無しUTF-8は、VSCode, サクラエディタなどを使う。
TeraPad は、新し目の文字に対応していないので、ダメ

235 名前:デフォルトの名無しさん (ワッチョイ 9f63-E+l9) mailto:sage [[ここ壊れてます] .net]
メモ帳、デフォルトでBOM無しで保存する
BOM付けるにはセレクトで一番下を選ぶ操作が必要

236 名前:デフォルトの名無しさん (テテンテンテン MM3f-2Jl6) mailto:sage [[ここ壊れてます] .net]
UnicodeのBOMはUTF-{8, 16, 32}で並び順が違うから判別に使える
逆に無いと推測に頼るしかない
メモ帳はSJISのテキストを開かれることもあるから、BOM無しUTF-8の場合は推測している
BOMが有れば確実に判別出来る
なのでBOM付きUTF-8は悪くない

237 名前:デフォルトの名無しさん (ワッチョイ 5701-dv3E) [[ここ壊れてます] .net]
WindowsではBOM付きのほうが便利だけどね。

238 名前:デフォルトの名無しさん [2022/09/18(日) 23:12:31.63 ID:a87PubfG0.net]
gccもBOMに対応したことですし。



239 名前:デフォルトの名無しさん mailto:sage [2022/09/18(日) 23:23:26.35 ID:CUVLEdWC0.net]
UTF-8にBOMが要らないと主張しているのは今の現実について言っているわけじゃなくて
「UTF-8しか存在しない美しい世界」を目指している活動家だからな。
説明したところで話が?み合わない。

240 名前:212 mailto:sage [2022/09/19(月) 00:00:08.46 ID:hV59E8S+H.net]
>>236
よくわかっていますね、実はそうなんですよね

241 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 00:15:30.26 ID:YVA4ZVOh0.net]
自覚したなら今度からはバイトオーダーにかこつけたアホな主張はやめとけよ。

242 名前:ハノン mailto:sage [2022/09/19(月) 00:18:28.74 ID:hV59E8S+H.net]
美しい世界(爆笑)のために、今後も活動を続けていきます!

243 名前:デフォルトの名無しさん [2022/09/19(月) 02:37:34.04 ID:Z9ZARiSG0.net]
ユニコードの上位セットであるGB18030もあるんだけど。

244 名前:デフォルトの名無しさん [2022/09/19(月) 11:10:12.09 ID:NE4NRLG3F.net]
>>236
そんなあなたに Nim がおすすめ

245 名前:デフォルトの名無しさん [2022/09/19(月) 11:11:36.70 ID:NE4NRLG3F.net]
>>233
ASCII (8bit以内) しかないテキストに BOM 付いてたらさすがにうざいと思う

246 名前:ハノン mailto:sage [2022/09/19(月) 11:21:09.68 ID:PpMrjNAJH.net]
>>242
ですよね!
コードは普通コメントも英語で書くし、なんで BOM がつかなきゃならないのか意味不明なんですよ、ましてや UTF-8 に BOM つけてもいい規約なんて後付けなんでしょう?
美しい世界(爆笑)のために今日もがんばります!

247 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:40:57.93 ID:YVA4ZVOh0.net]
>>241
まさに今、話が噛み合わないことを痛感した。

248 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:41:54.30 ID:zeLiCYh20.net]
なくても使えるなら、ない方が良い



249 名前:はちみつ餃子 mailto:sage [2022/09/19(月) 11:43:27.96 ID:npVSxydm0.net]
どれでもいいけど規格で決めないという対処には愚痴を言いたくもなる。

250 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 11:55:32.42 ID:M3xsgC0JM.net]
>>242
ウザいの定義を言え
普通にテキストエディタで編集してるだけなら気付きもしないだろう

251 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:00:13.75 ID:zeLiCYh20.net]
気付かなかったあなたはたぶん幸せ者です

252 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:13:35.24 ID:b1CdxAyP0.net]
10年前ならともかく今時BOMの有無で困ることなんてほぼなくね?

253 名前:デフォルトの名無しさん [2022/09/19(月) 12:30:39.37 ID:/08McGz80.net]
BOMなしUTF-8のデータを読ませるとエラーになるプログラムを作ったやつがいる。
こういうやつをどうするべきか?

254 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 12:33:02.11 ID:zeLiCYh20.net]
市中引き回しのうえ、磔獄門で

255 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:00:37.09 ID:YVA4ZVOh0.net]
仕様で読めることになっているのにエラーになるならバグだがそうでないなら読ませる方が悪い。
日本語Windows向けアプリの大半はそうだな。

256 名前:デフォルトの名無しさん [2022/09/19(月) 13:09:05.53 ID:/08McGz80.net]
仕様ではUTF-8と書いてあるだけ。ならばBOMの有無に関係なく読めるようにするべき。

257 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:13:10.64 ID:zeLiCYh20.net]
仕様ではUTF-8と書いてあるなら、あったら読み飛ばせば良いだけだな

258 名前:デフォルトの名無しさん [2022/09/19(月) 13:29:40.55 ID:/08McGz80.net]
にも関わらずBOMがないとわざわざエラーを出して終わる



259 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 13:40:15.70 ID:b1CdxAyP0.net]
単なるバグだろ、とっとと直させろよ

260 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 14:03:09.97 ID:Y3ojWtlT0.net]
> こういうやつ

BOMなしUTF-8のデータそのものを修正したいのか
BOMなしUTF-8のデータを読めるようにプログラムを修正したいのか
プログラムを作ったやつに復讐したいのか

どれだ

261 名前:ハノン mailto:sage [2022/09/19(月) 15:32:18.43 ID:PpMrjNAJH.net]
BOM はもともと UTF-16 のためのものでしょう?
それを、UTF-8 に対しても無条件に BOM をつけてしまうウンコエディターを量産している奴等に問題があるん

262 名前:ナすよ…

また、正直にいって、規格で決めればいいとかいう思考停止にも我慢ならないんですよ
美しい世界(爆笑)のために今日もがんばります!
[]
[ここ壊れてます]

263 名前:デフォルトの名無しさん [2022/09/19(月) 15:34:28.84 ID:Z9ZARiSG0.net]
HTMLもBOM推奨してなかったっけ。

264 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 15:56:49.87 ID:zeLiCYh20.net]
HTMLの場合、「BOM」付けると、PHP で謎の空白ができてしまう など動作や表示に不具合が出る可能性があるそうです。

265 名前:デフォルトの名無しさん [2022/09/19(月) 16:04:04.51 ID:Z9ZARiSG0.net]
それは、BOM付けるのがPHPの仕事だからじゃないの?

266 名前:デフォルトの名無しさん [2022/09/19(月) 16:20:33.07 ID:x76VqF340.net]
PHPは中途半端に歴史が古いから、Unicodeといえば、UTF-16なんだよな。

でもそのおかげでWindowsとの相性は悪くない。

267 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:20:51.69 ID:zeLiCYh20.net]
そもそも UTF-8 には、エンディアンの違いがなく、BOM(バイトオーダーマーク)を付ける必要がないんだそうだ

268 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:22:57.02 ID:zeLiCYh20.net]
HTMLの場合はHEADに使っている文字コード情報が入っているのでそれを見れば良い事になる



269 名前:デフォルトの名無しさん [2022/09/19(月) 16:25:44.76 ID:Z9ZARiSG0.net]
>>264
たしか規格でBOMを優先することになってなかったっけ?

270 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:33:42.03 ID:zeLiCYh20.net]
文字列としてバイトオーダーが実際に問われるのは、
UTF-16やUTF-32のケースだけです
その場合は必要ですね

271 名前:デフォルトの名無しさん [2022/09/19(月) 16:34:41.81 ID:Z9ZARiSG0.net]
確認したところ、なってたわ。
HTMLパーサー書いたことがあるから、おぼろげに覚えてた。

272 名前:デフォルトの名無しさん [2022/09/19(月) 16:46:36.41 ID:Z9ZARiSG0.net]
・BOMがある場合、BOMに従う。
・ない場合、500ms、あるいは1024バイト読み込むまで待機し、エンコーディング走査アルゴリズムを呼び出す。

エンコーディング走査アルゴリズム内で、ヘッダー内の情報が読み取られる場合もある。
(このアルゴリズムでも、他に優先される情報がある。)

やはり、HTMLにおいては、BOMをつけるべきだな。
読み込みが速くなるし、文字コードの違いを利用した攻撃を避けることが出来るし。

273 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:47:54.37 ID:zeLiCYh20.net]
HTMLの場合は、HEADに使用するcharsetが記述されてますから心配ありません

274 名前:デフォルトの名無しさん [2022/09/19(月) 16:48:57.21 ID:Z9ZARiSG0.net]
昔の外国映画で「ふにゃちん野郎が!」という悪口があったよね。
今後は「BOM無し野郎が!」と言うことを提案いたします。

275 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:49:03.30 ID:zeLiCYh20.net]
それにUTF-8にはバイトオーダーがありません

276 名前:デフォルトの名無しさん [2022/09/19(月) 16:50:38.05 ID:Z9ZARiSG0.net]
>>269
規格上、BOMのほうが優先される。
BOMがある場合、エンコーディング走査アルゴリズムは呼び出されない。
BOMをつけましょう。

277 名前:デフォルトの名無しさん [2022/09/19(月) 16:52:03.62 ID:Z9ZARiSG0.net]
BOMをつけないとセキュリティ上の問題がある。

278 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 16:52:15.94 ID:zeLiCYh20.net]
付けたWebサイトをここで公開して下さい
楽しみにしています



279 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 17:25:06.78 ID:UNULYZvbM.net]
すべてのUTF-8にBOMがついてたらSJISはもっと早く消えてくれたと思うんだよね

280 名前:デフォルトの名無しさん [2022/09/19(月) 17:31:57.08 ID:Z9ZARiSG0.net]
この話題は、BOMをつけましょうということで、良いのでは?

281 名前:ハノン mailto:sage [2022/09/19(月) 18:02:53.27 ID:PpMrjNAJH.net]
>>276
違います
BOM を付けるべき正統な理由がある時には付け、特に理由がなく惰性で付けてるんだったらやめよう、です

282 名前:デフォルトの名無しさん [2022/09/19(月) 18:05:47.85 ID:Z9ZARiSG0.net]
BOMを付けていない人を見かけたら、注意して差し上げましょう。
ということで、良いのでは?

283 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:12:09.41 ID:iQkZER0Ad.net]
テキストファイルを開いたとき最初の三文字がゴミかどうかいちいち判断するの?
2つのテキストファイルを結合するときゴミをひとつにまとめる処理するの?
BOMという考えが誤りなんだよ

284 名前:デフォルトの名無しさん [2022/09/19(月) 18:14:42.87 ID:Z9ZARiSG0.net]
法令でBOMを義務付けるべきでは?

BOMが無かったら通報するみたいな。

285 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:15:00.74 ID:zeLiCYh20.net]
Windowsの一部アプリでBOMがないと動作不具合起こすんだよ
Officeとか、Officeとか、その辺
この辺への思いやりが必要な時は付けてあげると良い

286 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:19:47.40 ID:BENNO3a0H.net]
>>278
それに加えて BOM を無駄につけている人を見かけたら、注意して差し上げましょう、も追加してください。

287 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:20:53.56 ID:BENNO3a0H.net]
>>280
その法令は間違っていますね

正直いって、規格で決めればいいとかいう思考停止にも我慢ならないんですよ
美しい世界(爆笑)のために今日もがんばります!

288 名前:はちみつ餃子 mailto:sage [2022/09/19(月) 18:22:38.11 ID:npVSxydm0.net]
>>279
ふたつのテキストファイルが Unicode である保証もない。
メタ情報で保証があるなら BOM があっても困らないし、
保証がないなら BOM があろうがなかろうが困る。



289 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:23:22.11 ID:BENNO3a0H.net]
>>281
たしかに office とか office とか office とか office とかに思いやりを示す寛大な処置ということであれば、付けて差し上げることにやぶさかではないのですけれどもね

290 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 18:27:12.50 ID:YVA4ZVOh0.net]
>>277
後半に関して言えば、そのテキストがどのエンコードを用いているかが他の手段で示されているなら
BOMは用いるべきではないとされているからそれに従えばいい話だね。
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と
混同してくれなければいい。

291 名前:デフォルトの名無しさん [2022/09/19(月) 18:28:42.31 ID:Z9ZARiSG0.net]
まあ私はどちらでも良いんですけれども。
(レイヤード・ストリームをつこてますので)
gccがBOMに対応したのだから、BOM付ける陣営の勝利では?

292 名前:デフォルトの名無しさん [2022/09/19(月) 18:33:34.93 ID:Z9ZARiSG0.net]
ところで明日は地下鉄が止まるかもしれないので、調べておいた方が良いですよ。

293 名前:デフォルトの名無しさん [2022/09/19(月) 18:35:51.09 ID:Z9ZARiSG0.net]
わたくし思うのですが、BOMに対応しないソフトウェアを企画してしまう技術者って、もはや技術者で無いのでは?
ユーザーが必要としてるわけですからね。

294 名前:デフォルトの名無しさん [2022/09/19(月) 19:59:29.61 ID:x76VqF340.net]
WindowsはBOMがあった方が判別しやすいが、LinuxやUNIXはBOMがあると余計なものが付いているという感じになる。

マルチバイト圏への配慮が足らなかったマイクロソフトが一番悪い。

だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。

295 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 20:35:04.98 ID:EmjBwTYRd.net]
BOMキチガイども

296 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 20:42:51.60 ID:F9okSTEiM.net]
MS-DOSの頃は、これで十分って思ってたからな。

297 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 21:05:32.45 ID:BENNO3a0H.net]
>>290
>だいたい2バイトで漢字がすべて収まると思ったアメリカ人

CJK 漢字統合なんて醜い仕様のひと言に尽きますよね

>>286
自己中心的、という言葉の使い方が間違っていますよ
その昔は Shift-JIS, JIS, EUC が入り乱れまくっていましたが、だれもテキストデータにエンコードを示すプリフィックスを付けようなどとは思わなかった事実があります
UTF-8 にバイトオーダーマークなんか絶対に不要なのにバイトオーダーマークを安易につける発想そのものが自己中心的なのでは?

美しい世界(爆笑)のために今日もがんばります!

298 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 22:08:36.69 ID:YVA4ZVOh0.net]
「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」というのが自己中心的な主張だと言ったんだが?
こんな単純な日本語の文章すらまともに読解できない奴に間違ってるとか言われても困惑するわ。



299 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 22:24:33.90 ID:BENNO3a0H.net]
>>294
同じことを繰り返しますが、
①過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかったのです。
 特にそういうことをしたいときは、ソースコードにその言語のコメントでエンコードを示す、くらいの配慮をしていたものです
②UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計です

特に②が重要で、バイトオーダーコードを要れずとも、C のソースコードは UTF-8 であれば普通にコンパイルできる、はず、なのに、なぜわざわざバイトオーダーコードを付加して既存の処理系がそのままでは使えなくなってしまったのか?
コンパイラは MS-VC だけではなく、gcc も clang も lsi-c (w)もあるというのに、既存のコンパイラの動作を妨害してまで、バイトオーダーコードを付加するエディター側の方が自己中心的といえるのではないでしょうか?
そしてエンコードを示すマークなどではないバイトオーダーマークをエンコード種を示すマークに乱用するしている二重の矛盾も指摘しなければなりますまい

私の言っていることがわかりますか?

300 名前:デフォルトの名無しさん [2022/09/19(月) 23:05:07.14 ID:/08McGz80.net]
>>264
そのHEADの箇所に行くまでエンコードが分からないのだよな?
そこまでどうやって読むのか?
まあ、現実問題としてASCIIで入れておきゃいいわけだけど、厳密にはそれじゃいかんよな。

301 名前:はちみつ餃子 mailto:sage [2022/09/19(月) 23:10:53.08 ID:npVSxydm0.net]
>>290
エンコード切り替えの規格は ISO/IEC 2022 がある。
PC-9801 時代あたりにはマニュアルで KI/KO コードという名前で説明されていた。
ヨーロッパ言語も ISO/IEC 8859 として十種類以上の文字セットが定義されているんだ。
日本での事情以上に混在は深刻な問題であって、対処する規格は当然ある。

302 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:18:33.90 ID:a+e8LTLZH.net]
>>296
おっしゃるとおり、そこまでは、ただのアスキー7bit で記述するんですよ
大概は第一行目にエンコード種をアスキーで書くものでしたけれどもね
厳密っていうけれども、あなたのおっしゃる厳密の意味がよくわかりませんね

303 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:19:31.82 ID:a+e8LTLZH.net]
>>297
英語が一番簡単で、ウムラウトとか苦労していたと思いますよ、ウムラウトは確か 7 ビット領域に侵食していたような気が

304 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:23:44.77 ID:a+e8LTLZH.net]
>>297
おっと、私のいっていたことが少し不正確でしたね、たしかに KI/KO は生 JIS にありましたね

305 名前:はちみつ餃子 mailto:sage [2022/09/19(月) 23:40:42.70 ID:npVSxydm0.net]
自然言語なんて数千年単位の歴史的経緯の塊だ。 その文字も。
綺麗に整理しようとしたって元がグダグダなんだからどこかしらでグダグダになる。
そんでそのグダグダをひとつに寄せ集めたのが Unicode なんだぞ。
そりゃグダグダで当たり前だし、そういうもんだと思うしかしょうがないだろ。

そんでもって Unicode がかなり広まったといっても従来の文字コードが消滅したわけでもない。
https://xkcd.com/927/

306 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:43:18.98 ID:a+e8LTLZH.net]
>>240
チャイナ規格ですか‥‥(差別意識満々)
調べてみましたが基本的に4ビット固定長であり、UTF-8 を包含してはいないようですね、UTF-8 の上位規格というのはどういう根拠でそういっているのですか?
どっちかというと 現行中国漢字エンコード規格の上位規格でしょう

私の理解
・7 ビット圏は 1 バイト
・拡張部分は可変長ではなく 4 バイト固定
・現行の中国の漢字エンコード規格 GBK(シフトJIS と同じ仕組み)を包含するように第二・第四バイトの範囲を GBK と被らない範囲に制限している。

307 名前:デフォルトの名無しさん [2022/09/19(月) 23:48:55.05 ID:Z9ZARiSG0.net]
>>302
ユニコード・コードポイント全てを内蔵したうえで、さらに少数民族の文字を追加してあるからでしょ。
そういう生い立ちなんだから。

308 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:52:42.86 ID:A/Pc+E3NH.net]
>>301
How standards have been overproducted とか易しい英語にしてほしいなあ



309 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:55:05.42 ID:A/Pc+E3NH.net]
>>303
コードポイントの数は十分確保している、って言う意味で「ユニコードの上位規格だ」と主張しているわけですか
この理解で正しいですか?

310 名前:デフォルトの名無しさん mailto:sage [2022/09/19(月) 23:55:54.72 ID:zeLiCYh20.net]
EBCDIC なんていうコード体系もあるんだよな
これはASCIIよりも古い
このコードで動いていたPCもあった(今もあるかは知らない)

311 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 05:35:11.57 ID:JyAf+et+0.net]
N5200か

312 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 05:38:15.50 ID:AtHbCf2+0.net]
>>290
2千字の常用漢字で済ませという時代だったから。

> だいたい2バイトで漢字がすべて収まると思ったアメリカ人に対して、早く日本人が漢字は何万字もあると教えなかったのが失敗だった。

313 名前:デフォルトの名無しさん (ワッチョイ ffb0-okD4) mailto:sage [[ここ壊れてます] .net]
>>295
ここまでくると狂気しか感じないが。>>286で自己中心的と書いた内容と全然関係ない内容を
延々と繰り返すのはなんでだろう。
ついでに>>295の内容について言えば、規格で定めているもののどこがどう自己中心的なんだか。
この場合の「自己」って誰のこと?

314 名前:デフォルトの名無しさん [2022/09/20(火) 09:59:52.88 ID:2fXkGtCja.net]
>>270
PHP+SJIS全盛の頃にBOMの代わりに「美乳」が使われてた時代があったな

315 名前:デフォルトの名無しさん [2022/09/20(火) 10:02:30.30 ID:2fXkGtCja.net]
>>275
そうかな
全てのファイル名にBOM付いてたら嫌だな

316 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 10:04:55.52 ID:Sk0Tcp2N0.net]
MSならやりかねない

317 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 10:08:20.39 ID:x6uHKNFtM.net]
>>311
asciiなら不要だよ

318 名前:デフォルトの名無しさん [2022/09/20(火) 10:19:31.19 ID:2fXkGtCja.net]
>>313
BOM付けろ派はASCIIかどうかもBOM付いてないと判らないみたいだし



319 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 10:27:10.48 ID:Sk0Tcp2N0.net]
MSの事だから、UTF-16使いそう

320 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 22:46:15.84 ID:oGqR16NY0.net]
>>309

>>286で自己中心的と書いた内容と全然関係ない内容

>>286
>「俺が扱うテキストは全部UTF-8に決まってるんだからBOMは要らない」という自己中心的な主張と混同してくれなければいい。

まあ、活動家のなりきりをしているので、そういうスタンスをとっているけれども、本質的には

>>295
1. 過去、エンコードの違うテキストを各種取り扱っていたからといって、「テキストの内部に恣意的にエンコードを示すマークを入れる」などという自己中心的なことをした歴史はなかった
2. UTF-8 でエンコードされている限り、そのコンテンツがアスキーコードのみで構成されているのならば、特にバイトオーダーコードは不要で、as is で使えるように、欧米諸国に配慮した設計

が言いたいことですね

UTF-8 ならば通常は as is で使えるんですよ、特に C/C++ のコード(コメントは英語・これって普通でしょ?)をそのまま使えるのに、どこぞのエディターが勝手につけるバイトオーダーマークまで正当化する風潮に苛立ちを感じているんですよ
長いものに巻かれよ、みたいなみっともない風潮を正当化するあさましさにあきれ果てているのです

あなたがそうだ、とはいいませんけれどもね

321 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 22:50:52.98 ID:an1sf52Dd.net]
どこでも演説をおっぱじめるガキにいらだちを感じてる

322 名前:デフォルトの名無しさん mailto:sage [2022/09/20(火) 23:07:44.32 ID:Sk0Tcp2N0.net]
多国語が混在しても扱えるところが気に入ってる

323 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 00:15:08.73 ID:z4iK/HUS0.net]
gdbについて質問いいですか?
ステップ

324 名前:実行でfopenを通過しようとすると
 "iofopen.c: そのようなファイルやディレクトリはありません"
とメッセージがでて先に進めません。どうすれば回避できますか?

OS:Linux
[]
[ここ壊れてます]

325 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 00:17:32.94 ID:z4iK/HUS0.net]
ちなみにソースは以下の感じです
fopenで開くファイルは実行ファイル(a.out)と同じ場所に置いてあります。

#include <stdio.h>
void main(void){
 FILE *fp;
 fp =fopen("aa.txt", "r");
 fclose(fp);
}

326 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 00:45:37.65 ID:itvuUNqP0.net]
このあたり参考にしてください
https://doss.eidos.ic.i.u-tokyo.ac.jp/html/advanced_gdb.html#libraries

327 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 06:00:40.75 ID:z4iK/HUS0.net]
>>321
サンクス

328 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 06:25:52.07 ID:tW9j9RfF0.net]
includeガードって割と使われてるように思いますが、エラい人の批評とかありません?
依存関係を把握しきれてないヤバい状態の発覚を先延ばしにするだけのハックだと個人的な経験から思うのですが…



329 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 06:39:05.65 ID:6JiKBcvPd.net]
とりあえず各ソースファイルの実行部、なければinit_xxxみたいなエントリーポイント作って
#ifdef XXX perror("xxx loaded twice"); exit(XXX);
みたいの置いたりしてます

330 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 06:47:28.88 ID:6JiKBcvPd.net]
init_xxxを呼び忘れると無意味なので、文法エラーで落とせたら良いと思うんですが、分かりやすいメッセージ吐いて落ちてくれる違法構文(あるいはそうするときの標準的なイディオム)あったら教えて欲しいです

331 名前:デフォルトの名無しさん mailto:sage [2022/09/21(水) 07:18:22.65 ID:sLC8V8J20.net]
>>323
エロい人の批判ねえ。。。
#pragma onceなんか色んなコンパイラの中の人が真似してるけど?

依存関係を把握っていうけど、じゃあ
#include <stddef.h>
#include <stdio.h>
なんて書かされたいわけ?
ライブラリだって-lstdcじゃなく
fputc.o iobuf.o fprintf.o printf.oなんて書くべきだと思う?

何かを使いたいときの窓口を1つにまとめておくのは
作る側として行儀のいいことだと思うぞ

332 名前:デフォルトの名無しさん (スフッ Sdbf-MXZj) mailto:sage [[ここ壊れてます] .net]
>>326
むしろグッドプラクティスとされてる感じですか、確かにシステムヘッダにも見掛けますね

標準ライブラリは使うものを共通ヘッダにまとめてますね
ライブラリとして公開する場合は当然慣習に従うべきだと思いますが、書いてる時には丁度必要十分でなく、余計なヘッダがあると何処に何があったか混乱したりしません?

コードを弄らずスタティックアナライザとか道具に頼った方がいいのかな

333 名前:はちみつ餃子 mailto:sage [2022/09/21(水) 09:18:02.72 ID:tPUkcfIa0.net]
>>323
ライブラリはそのライブラリの使用者に対して
インターフェイス部分だけを公開したいのが普通で、
細かい依存関係が見えてしまうのは悪い設計だろ。

でも C のヘッダファイルの仕組みは隠蔽しきれない部分が出てしまうので
そもそも C の言語としての仕組みが悪い。
C を使う以上は悪い部分ともつきあわないとしょうがないし、
インクルードガードは比較的マシな解決方法だと誰もが考えているからこそそうなってる。

C++ にはモジュールが導入されたけど今のところはヘッダファイルとも共存し続ける必要があるから
完全な移行にかかる時間は数十年単位かもしれんな……。

334 名前:デフォルトの名無しさん [2022/09/21(水) 09:58:34.67 ID:hjFc1SVt0.net]
新言語作った方が早いw

335 名前:デフォルトの名無しさん [2022/09/21(水) 18:18:19.49 ID:E8IgYMeHa.net]
>>327
>余計なヘッダがあると何処に何があったか混乱したり

へたくそなライブラリだとそういうの見掛けるが
上手なライブラリはすっきりしてるイメージ

336 名前:デフォルトの名無しさん [2022/09/21(水) 18:19:32.68 ID:E8IgYMeHa.net]
>>328
FILE * とかって結局使う方からしたら void * でも動くしな

337 名前:デフォルトの名無しさん [2022/09/21(水) 18:21:06.66 ID:E8IgYMeHa.net]
>>329
Nimがある

338 名前:デフォルトの名無しさん (ワッチョイ d7b3-rZTD) mailto:sage [[ここ壊れてます] .net]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <memory.h>

typedef struct {
int year;
int mon;
int mday;
int hour;
int min;
double high;
double open;
double close;
double low;
} CSV_T;

void f(CSV_T *csv){
CSV_T *work;

for(int i=1; i<1001; i++){ //★
work = realloc(csv, sizeof(CSV_T)*i);
if(work == NULL){
puts("error");
exit(0);
}
if(work != csv) {
puts("ココ通過でアウト"); //▲
csv = work;
}
}



339 名前:デフォルトの名無しさん (ワッチョイ d7b3-rZTD) mailto:sage [[ここ壊れてます] .net]
csv[0].year = 1;
csv[0].low = 1.1;
csv[998].year = 9;
csv[998].low = 9.9;

printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);
}

void main(void){
CSV_T *csv;

csv = realloc(NULL, 1);
f(csv);

printf("%d %f\n", csv[0].year, csv[0].low);
printf("%d %f\n", csv[998].year, csv[998].low);

free(csv);
}

340 名前:デフォルトの名無しさん (ワッチョイ d7b3-rZTD) mailto:sage [[ここ壊れてます] .net]
・やりたいこと
CSVファイルを1行読み込むごとに構造体のエリアをreallocで拡張して格納
元のソースをそのままアップするには長いのでファイルの読み込み部分を削除したソースが上のやつです

・悩んでいるところ
コメント★のとこのループが1000程度なら動きます。
しかし10000を超えるループにするとコメント▲部分を通過するようになり
mainのprintfが正しい値を表示しなくなります。

なぜ?

341 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 19:58:17.91 ID:z6cxsZX20.net]
領域拡張がそのままでは出来ずに新たな領域に指定サイズで取り直すからでは?
どっちにしてもそんなに細かくrealloc()するものでは無いし
ある程度の大きさで取っておいて足りなくなったらrealloc()するのが本来の使い方

342 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 19:58:48.48 ID:p2gwdjIg0.net]
reallocが別のメモリを確保して返す場合
▲のほうを通ります
このときfの内部でcsvを変更しても
mainのcsvは変化しません。
返り値にするかfの引数をCSV_T**にするか
変更すればよいです。

343 名前:デフォルトの名無しさん [2022/09/22(木) 21:54:30.38 ID:x7eBA3430.net]
>>293
昔はデータ容量を節約する必要があったから、データ容量が増えることは避けたかっただけ。

344 名前:デフォルトの名無しさん [2022/09/22(木) 21:56:10.71 ID:x7eBA3430.net]
>>295
①や②を使っている時点で日本人の都合を世界に押し付けていることがわからないのか?

345 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 22:34:09.45 ID:4dXBB0gP0.net]
丸数字はUnicodeに登録されてるから心配ないよ
㋿ですら存在するし

346 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 23:15:55.13 ID:9LVV18M9M.net]
>>293
そんなこと言ってたらUnicodeには肌色を指定する文字があって、これは通常表示されない
これらを組み合わせると家族絵文字はたった1文字を表示するのに最大で41byteになる
もはや文字を正しく表示する事は簡単じゃない
BOMの有無なんてかわいいもんだ

347 名前:はちみつ餃子 mailto:sage [2022/09/22(木) 23:47:09.65 ID:He0eupRY0.net]
私が Unicode のグダグダさについて言いたいことは >>301 が全てなので繰り返しになるんだが
そもそも自然言語がグダグダなのが問題の根源。
文句があるなら自然言語を規格化して普及させてみせろや。

348 名前:デフォルトの名無しさん mailto:sage [2022/09/22(木) 23:50:49.90 ID:4dXBB0gP0.net]
人それぞれなんだが、
自分が一番困るのは

  ~

これの扱いでいつもトラブル



349 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 00:53:58.54 ID:oded7icuM.net]
「が」と「か゛」が混ざってる事もある(見た目じゃ判別付かない)から、先ずはUnicode正規化しないと、なぜか文字列が一致しないとかもある

350 名前:デフォルトの名無しさん [2022/09/23(金) 01:35:24.44 ID:gD4It3Aba.net]
>>335
>>333-334 で work を書き換えて csv に上書きしてるつもりで
main の csv は上書きされていない
f 側では CSV_T **csv で受けて *csv = work; と描いて上書きする
main から &csv を渡す

351 名前:デフォルトの名無しさん [2022/09/23(金) 01:37:21.11 ID:gD4It3Aba.net]
ここと
work = realloc(*csv, sizeof(CSV_T)*i);
ここも
if(work != *csv) {
変更汁

352 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 06:31:49.61 ID:exFn1ITS0.net]
>>346
ここも直さんとエラーになるぞ
void f(CSV_T **csv){

353 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 08:25:09.61 ID:wfJAcbE20.net]
>339
日本の都合に合わせたOSを作ったらアメリカから(ry

354 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 08:38:34.03 ID:JWInDr1o0.net]
BOMはいるとかいらないとか
自分を中心に語っている間は自己中心的、なんじゃないですか?
BOMあったほうが良い環境と無いほうが良い環境があるなら、それに合わせて利用するでは?

355 名前:デフォルトの名無しさん [2022/09/23(金) 08:55:36.44 ID:7gKq4Utr0.net]
>>349
いまはネットでつながってる時代なので、BOMを付けるべきでしょう。
自分だけで使う資料なら、何も言いません、自由にしてください。

356 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 09:05:36.75 ID:CJ5Vu8e/0.net]
>>336-347
動きました。
指摘頂いた箇所を直してコンパイルすると、コンパイラが
 error: ‘*csv’ is a pointer; did you mean to use ‘->’?
っと吐くので、コンパイルメッセージ通り
 csv[0]->year = 1;
 csv[0]->low = 1.1;
 csv[998]->year = 9;
 csv[998]->low = 9.9;
と修正したら Segmentation fault (コアダンプ) となるので随分悩みましたが
以下のようにすることで望む動作となりました。サンクスです。おわり。
 csv[0][0].year = 1;
 csv[0][0].low = 1.1;
 csv[0][998].year = 9;
 csv[0][998].low = 9.9;
 printf("%d %f\n", csv[0][0].year, csv[0][0].low);
 printf("%d %f\n", csv[0][998].year, csv[0][998].low);

357 名前:デフォルトの名無しさん (スッププ Sdbf-UZdd) mailto:sage [[ここ壊れてます] .net]
>>348
そんな幻覚を信じてる奴がC言語使うなw

358 名前:デフォルトの名無しさん [2022/09/23(金) 10:17:08.51 ID:7gKq4Utr0.net]
中国がやられていることを、以前は日本がやられていた。



359 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 10:36:16.17 ID:N+YYHg9hd.net]
中国のはただのLINUXもどきだろw

360 名前:デフォルトの名無しさん (ワッチョイ 9701-W3aP) [[ここ壊れてます] .net]
アメリカは許さん。
いつかアメリカが弱くなった時、必ず仕返しをする。

361 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 10:46:24.11 ID:mieuEbaK0.net]
アメリカはほんとジャイアンだよな
色々な国から恨み買ってると思うわ

362 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 11:04:10.31 ID:N+YYHg9hd.net]
そういう下らない話はどっかの陰謀論スレでやれ
CもUNIXもパソコンもどこの国が作ったんだよw

363 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 11:14:08.38 ID:mieuEbaK0.net]
だから国産のCやUNIXが必要なんだよ
アメリカにずっと依存してたらいつか痛い目を見ると思うわ

364 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 11:24:24.02 ID:Ztvb6Y4W0.net]
Cのどこに陰謀なんかあるんだよ
ちゃんと理解して使ってる人なら絶対にありえない妄想だな
いつまで経ってもHello worldの域を出られないウルトラ低脳だけだろそんなこと言ってるのは

365 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 12 ]
[ここ壊れてます]

366 名前::04:08.03 ID:d/Vr8qA70.net mailto: ビジコンの小島社長が技術だけでなく、世界を目指していたら
今頃は世界を制覇して太ろうに
[]
[ここ壊れてます]

367 名前:デフォルトの名無しさん [2022/09/23(金) 13:05:01.09 ID:hRyY5Ouqd.net]
>>351
そこまで csv[0] 多用するなら
引数を void f(CSV_T **pcsv) にして
関数内で CSV_T *csv = *pcsv; すると良い
最後に *pcsv = work; だけ気を付ける

368 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 13:28:27.27 ID:UtiZ09eAd.net]
>>358
じゃあLINUXはどこの国の人が作った?
一行でもプログラム書いたことないのがバレバレだぞw
くだらねえ陰謀論書くヒマあったら



369 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 14:25:39.25 ID:wfJAcbE20.net]
世界初のCPUは(ry

370 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 14:59:32.72 ID:4W75W0wl0.net]
イギリス人のノイマンが考えてアメリカのEDVACに搭載されたのが最初だっけ

371 名前:デフォルトの名無しさん (ワッチョイ 9fad-okD4) [[ここ壊れてます] .net]
ジョン・フォン・ノイマンはハンガリー出身のアメリカの数学者。
両親はハンガリーに移住したユダヤ系ドイツ人。

372 名前:デフォルトの名無しさん [2022/09/23(金) 16:25:05.41 ID:7gKq4Utr0.net]
>>362
五橋研究所の一件は絶対に忘れない。
アメリカを許さない。

373 名前:デフォルトの名無しさん [2022/09/23(金) 17:04:19.95 ID:U+A60u3d0.net]
>>363
何を以てCPUと呼ぶかという定義の違いによってどれが世界初のCPUかが変わる。

374 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 17:15:38.41 ID:JPfPvbHpM.net]
ノイマンは原爆は地上100mで爆発させるのが最もダメージを与えられるという計算を一生懸命してた人

375 名前:デフォルトの名無しさん (ワッチョイ 9701-W3aP) [[ここ壊れてます] .net]
技術が政府を必要なくするという妄想を主軸に据えた改定アナーキズムを提唱します。

国を細分化し、一つの国の力を十分に小さくすれば、戦争は消え去ります。
それも改定アナーキズムの効果のひとつです。

376 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 18:46:47.28 ID:mieuEbaK0.net]
>>362
Linuxの開発はC言語依存だろ
そしてC言語はアメリカ産の言語
国産のC言語で国産のLinuxを作る
これが真の国力だよ

377 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 18:46:48.98 ID:iDGv9NFq0.net]
どの国で作られたとかアフォかと。その国だけで使ってくれって思ってるとでも?他国でDLさせたり、販売しといて?

378 名前:デフォルトの名無しさん [2022/09/23(金) 19:00:25.69 ID:7gKq4Utr0.net]
技術者らしく、アメリカをぶっ倒す方法論を考えよう。
アメリカの良し悪しなんて、倒した後で誰かが考えてくれる。



379 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:01:30.63 ID:mieuEbaK0.net]
この認識って一般的じゃないのか?
えーまじかよ
将来アメリカと戦争になったらどうすんの
gccとかダウンロードできなくなるんじゃないの?

380 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:02:00.96 ID:IIvpOqM90.net]
>>338
だからといって三カ国の漢字コードを無理遣りに統一する!とか言い出す必要があったのか?
各国とも各国なりのちゃんとした漢字コード体系が成立していたというのに

381 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:02:59.42 ID:H9J4nWLH0.net]
>>339
①②はアメリカ人の都合でしょ?
どうして①②が日本人の都合か説明いただけませんか?

382 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:04:14.91 ID:H9J4nWLH0.net]
>>341
絵文字はねえ‥‥、絵文字をねじ込んだのは日本人ですし、確かに酷いことになっていますよね、ご意見に同意します

383 名前:デフォルトの名無しさん [2022/09/23(金) 19:04:28.38 ID:7gKq4Utr0.net]
>>374
そうだな。
文字コードは一番詳しい日本が主軸となって作り直す必要があるな。
まず、新しい文字コードの名前から考えよう。

ところで、JISが日本工業規格ではなくなったって知ってるか?
まずそこからだぞ。

384 名前:デフォルトの名無しさん [2022/09/23(金) 19:05:35.56 ID:7gKq4Utr0.net]
>>370
日本にはLSI-C86試食版があるじゃあないか!

385 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:08:24.89 ID:YNz/Bu6p0.net]
>>342
>文句があるなら自然言語を規格化して普及させてみせろや。

人工言語エスペラント(人工言語といったら発案者は怒りますね、彼は謙虚に「国際補助語」といっていますね)に始まる「ふつくしい世界」の探求ですね
ロジバンがいい感じに見えるのですが私の年齢では、もうとりかかるのにためらわれますね、若い方でやっている方はおられますか?

386 名前:デフォルトの名無しさん [2022/09/23(金) 19:13:00.21 ID:7gKq4Utr0.net]
俺たちサタンは絶対アメリカを許さへんでえ!

387 名前:デフォルトの名無しさん [2022/09/23(金) 19:25:58.67 ID:7gKq4Utr0.net]
>>373
いまあるパソコンで最大に困ってることは何かと考えるとセキュリティじゃないかな?
乗っ取られないOSを考え付いたら、世界をとれるんじゃないか?

388 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:27:57.78 ID:+9iUtJm1M.net]
いつまで妄想続けるの?



389 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:29:30.75 ID:iDGv9NFq0.net]
「私ハッカー。今あなたの後ろに居るの。」

390 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:29:35.80 ID:d/Vr8qA70.net]
森公一郎さん、亡くなってしまった

391 名前:デフォルトの名無しさん [2022/09/23(金) 19:29:54.80 ID:7gKq4Utr0.net]
>>382
真面目なC言語の話題が投稿されるまで。

392 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:30:27.24 ID:TJPY0mvX0.net]
>>370
Linux はスウェーデン系フィンランド人(ムーミンの作者トーベ・ヤンソン(女性)もそうですね)で、アメリカ人とはいいがたいですねえ

393 名前:デフォルトの名無しさん [2022/09/23(金) 19:34:43.74 ID:7gKq4Utr0.net]
>>386
リナスが作ってるわけじゃないから。

394 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:36:04.99 ID:muvuGuRN0.net]
>>387
今はね、最初は?

395 名前:デフォルトの名無しさん [2022/09/23(金) 19:40:07.19 ID:7gKq4Utr0.net]
>>388
理屈じゃねえんだよ。
統一教会は最高なんだ!

396 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 19:59:37.68 ID:Ztvb6Y4W0.net]
>>370
マジで言うぞ、アホかお前は
科学技術の功績がどこ人とか地の果てまで関係ねえんだよ
0をインド人が発見したからってブール代数はインドの国力か?
理系と文系の区別がガチでわからんやつめ

397 名前:デフォルトの名無しさん [2022/09/23(金) 20:09:09.70 ID:7gKq4Utr0.net]
そうだ、これからインドは伸びる。

398 名前:デフォルトの名無しさん (ワッチョイ 97e6-G1yF) mailto:sage [[ここ壊れてます] .net]
>>391
とても興味があります
インドの強みはなんでしょうか?インドの言語・サンスクリットが強みなんでしょうか?



399 名前:デフォルトの名無しさん (ワントンキン MM7f-bNpc) mailto:sage [[ここ壊れてます] .net]
ラマヌジャンが見つけたπの計算式は他の人では不可能じゃないかな

400 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 20:53:50.26 ID:nZMEnIrnM.net]
世界のIT系企業中心の三大都市として
米国のシリコンバレー
中国の深セン
印度のバンガロール
は有名な話ではある

401 名前:はちみつ餃子 mailto:sage [2022/09/23(金) 21:00:05.13 ID:+J9Wni8j0.net]
>>392
人数。

402 名前:392 mailto:sage [2022/09/23(金) 21:36:47.77 ID:UhaHLJ5a0.net]
>>395
!!!

403 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 21:44:22.73 ID:mieuEbaK0.net]
>>390
科学技術はまーそうだけど
依存してる状態はよくないでしょ?
まぁC言語については国産のコンパイラ作ればそれでいいけど
たとえばトップが中国人になって日本にだけ冷遇してくるとかさ
そういのってあるでしょ?

404 名前:デフォルトの名無しさん [2022/09/23(金) 21:52:19.66 ID:7gKq4Utr0.net]
アメリカに冷遇され続けてるのに。
なぜか「日本はアメリカに愛されているんだ!」とか。
愛されない子供ようなこと言ってる。

405 名前:デフォルトの名無しさん [2022/09/23(金) 21:54:05.85 ID:7gKq4Utr0.net]
そもそも、現代のアメリカと真っ向から戦った国なんて一つしかないのに。
警戒されてるに決まってるじゃん。

こっちだっていつか復讐しようと爪を研いでるのに。

406 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 21:55:43.97 ID:Ztvb6Y4W0.net]
>>397
やっぱりな
ム板に来るやつだからと万が一の奇蹟に期待してたが
予想どおりガッカリなやつだな

出てけよ、技術板にそぐわないやつめ

407 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 22:01:55.13 ID:mieuEbaK0.net]
>>400
なんでそんなに怒ってるのか謎だわ
俺は間違ったことは言ってないと思うが

408 名前:デフォルトの名無しさん [2022/09/23(金) 22:04:33.75 ID:7gKq4Utr0.net]
全く間違っていない。
自給率確保は日本の安全保障の大原則だし。
「日本をぶっ壊す」とか言い始めた、ここ30年の日本政府は別として。



409 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 22:33:25.75 ID:d/Vr8qA70.net]
ニュース系板が規制きびしくて
耐えられなくなった難民どもが
無関係なスレを徘徊して荒らしている
今日この頃

410 名前:デフォルトの名無しさん [2022/09/23(金) 22:49:16.67 ID:7gKq4Utr0.net]
今まで政治に関心が無かった人が、関心を持ち始めて、良いことでは?
民主主義的に言って。

411 名前:デフォルトの名無しさん [2022/09/23(金) 22:51:28.64 ID:7gKq4Utr0.net]
自給率は安全保障の指標の一つですから、国産OSが必要だと思います。

全てを過去に変える偉大なOS!!!

ではなく、誰もが普遍的に使える小さなOSが良いと思います。

412 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 22:52:11.60 ID:bBi47OZ40.net]
TRONのソースかき集めてPC/スマホで動くように改修すればええねん

413 名前:デフォルトの名無しさん [2022/09/23(金) 22:57:55.86 ID:7gKq4Utr0.net]
アイドル板とかゲーム板で政治の話が出るのが、健全な民主主義じゃないっすか?

414 名前:デフォルトの名無しさん [2022/09/23(金) 23:05:29.93 ID:7gKq4Utr0.net]
>>400
あんた、サタンが憑りついてるんじゃないか?
言動がめちゃくちゃだぞ。

415 名前:デフォルトの名無しさん mailto:sage [2022/09/23(金) 23:45:27.33 ID:CJ5Vu8e/0.net]
>>405
LinuxでOK
どこの国にも属してないぞ

416 名前:デフォルトの名無しさん [2022/09/23(金) 23:58:56.17 ID:7gKq4Utr0.net]
>>409
Laser5の一件を忘れたのか!

417 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 00:05:10.37 ID:GpR8CZ+m0.net]
>>410
忘れる以前に知らない
検索するのでキーワード教えて

418 名前:デフォルトの名無しさん [2022/09/24(土) 00:09:08.45 ID:75jIGLYK0.net]
>>411
バトルプログラマーシラセ「五橋研究所 Redhat」



419 名前:デフォルトの名無しさん [2022/09/24(土) 00:10:44.12 ID:75jIGLYK0.net]
俺たちサタンは、アメリカを許さへんからな、絶対!!!

420 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 00:13:49.44 ID:f4deLGav0.net]
スレチなごっこ遊び楽しい?

421 名前:デフォルトの名無しさん [2022/09/24(土) 00:22:34.27 ID:75jIGLYK0.net]
メシアが試練をお与えになっているのです。

422 名前:デフォルトの名無しさん [2022/09/24(土) 00:23:01.75 ID:6vPOYH6k0.net]
>>391
そしてやがてインドでOSが作られる。名前は

インドーズ

423 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 00:24:40.95 ID:5OzUjEi80.net]
インドーズわろた

424 名前:デフォルトの名無しさん [2022/09/24(土) 00:25:05.38 ID:6vPOYH6k0.net]
国産OSガーと言ってる人は超漢字を使ってここに書き込むこと。

425 名前:デフォルトの名無しさん [2022/09/24(土) 00:25:20.44 ID:75jIGLYK0.net]
>>416
使いやすそうだけど、文字一個分なにかが足りないんでしょうね!

426 名前:デフォルトの名無しさん [2022/09/24(土) 00:29:42.52 ID:75jIGLYK0.net]
五橋研究所はRedhatとパートナー契約を結び、RedhatLinuxの日本語化を行った。
充分な日本語化を達成して時点で、Redhat社はパートナー契約を打ち切り、Redhat自身で日本語版Linuxを自社販売した。

427 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 00:31:40.20 ID:Ohf7lvDf0.net]
単独で動く超漢字なら、使ってみたい

428 名前:デフォルトの名無しさん [2022/09/24(土) 00:45:35.80 ID:75jIGLYK0.net]
・明日からWindowsは使えません。
・明日からmacOSは使えません。
・明日からiOSは使えません。
・明日からAndroidは使えません。

> Imagine all the people
> Living for today



429 名前:デフォルトの名無しさん [2022/09/24(土) 00:49:50.96 ID:75jIGLYK0.net]
いま中国のSNSで写真の加工が流行ってるんだよね。
ブドウの粒粒を星形にする加工。
みんなが加工してウプしてる。
なんでだろね?

430 名前:デフォルトの名無しさん [2022/09/24(土) 00:51:01.98 ID:75jIGLYK0.net]
ファーウェイはAndroid搭載

431 名前:機器を販売できなくなって、スマホから撤退したからね。
アメリカン・リスクだわ。
[]
[ここ壊れてます]

432 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 01:02:13.43 ID:uYCDlyGwM.net]
>>376
絵文字の表示と編集まで出来るように対応するのは大変な労力だけど、お陰で日本語を知らない外国人のソフトウェアでも、自然と日本語に対応されるという利点がある
もっと細かいところまで対応するのはネイティブじゃないと無理だけど、かなりの進歩だ

433 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 01:21:31.21 ID:GpR8CZ+m0.net]
もう日本はアメリカなしでは生きていけない
中国やロシアみたいにアメリカ発のサービスが止められるような状況になったらバンザイするしかない
なので考えるのはやめよう(スレちだし)

434 名前:デフォルトの名無しさん [2022/09/24(土) 02:06:42.56 ID:75jIGLYK0.net]
自民党みたいなこと言っちゃって。

435 名前:デフォルトの名無しさん [2022/09/24(土) 02:14:26.65 ID:6vPOYH6k0.net]
>>424
米国が制裁の中国ファーウェイ 日本のスマホ事業撤退せず
https://news.tv-asahi.co.jp/news_economy/articles/000256013.html

ファーウェイのスマホは売り上げ4倍に、「ロシア特需」に沸く中国経済
https://jbpress.ismedia.jp/articles/-/69446

436 名前:デフォルトの名無しさん [2022/09/24(土) 02:25:35.17 ID:75jIGLYK0.net]
>>428
ファーウェイはAndroid搭載機器を販売できなくなっていないと言いたいのか?

437 名前:デフォルトの名無しさん [2022/09/24(土) 02:26:06.48 ID:6vPOYH6k0.net]
>>426
そもそも日本は敗戦国だから少なくともアメリカに対しては自由はない。
お爺ちゃんの代からCIAと繋がっていようがいまいが日本はアメリカンの属国だ。
この事は逆の立場になって考えてみれば分かると思う。戦争してやっと勝った相手に対して戦後に自由を認めるか?そんなことは普通に考えてあり得ないだろう。

438 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:37:00.43 ID:6vPOYH6k0.net]
>>429
Android そのものはフリーだから Android のスマホが作れないことはない。
ただ Google のサービスは全滅なのでその辺を独自に作る必要がある。
中国国内からは検閲の都合で Google へは繋がらないだろうから最初からそういう独自のサービスは用意しているのではないかと思う。
ロシアで売れる理由はそれのロシア語版があるからではないか。
日本ではまだ売ってるだろうが普通に Google のサービスが使えないのでは商品価値がないのでほとんど売れず、また日本で新機種投入はしないということだろう。



439 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:41:06.82 ID:6vPOYH6k0.net]
Amazon の Fire タブレットも似たような状態だな。Android ベースのOSだけれど GooglePlay からのアプリ取得はできない。
で、Amazon が独自にアプリダウンロード出来るようにしている。

440 名前:デフォルトの名無しさん [2022/09/24(土) 02:41:09.39 ID:75jIGLYK0.net]
結局、アメリカン・リスクがあるから、独自OSが必要ってことじゃないか。

441 名前:デフォルトの名無しさん [2022/09/24(土) 02:43:02.20 ID:75jIGLYK0.net]
>>432
あと数週間で日本でもWindows11でAmazonのアプリが使えるようになるらしいぞ。

442 名前:デフォルトの名無しさん [2022/09/24(土) 02:44:39.66 ID:75jIGLYK0.net]
ちなみに私はファーウェイのタブレット使ってたけどね。
ペンが使えるちょっといいやつ。
アメリカの規制以降、Androidは8から更新できないままになってた。

443 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:48:12.34 ID:l1NUECho0.net]
>>434
もう利用できるよ
ただAmazon App StoreではGoogle Playには到底及ばないので殆ど使われていない

444 名前:デフォルトの名無しさん [2022/09/24(土) 02:48:52.85 ID:75jIGLYK0.net]
アメリカからの独立を目指す政党が立ち上がればよいのだが。

445 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:49:48.78 ID:Ohf7lvDf0.net]
政治と宗教の話は食卓でするなってばっちゃが言ってた

446 名前:デフォルトの名無しさん [2022/09/24(土) 02:50:30.47 ID:75jIGLYK0.net]
>>436
うちにはまだ来てないぞ。
きさま、マイクロソフトの回し者だな?

447 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:51:18.33 ID:GpR8CZ+m0.net]
なんだ最後は他人任せか
「俺が独自OS作ってやるぜ!」とか「俺が政党を立ち上げるから支援してくれ!」とはならないのか?
でなきゃ「口だけなやつだな」で終わるぞ

448 名前:デフォルトの名無しさん [2022/09/24(土) 02:51:33.02 ID:75jIGLYK0.net]
朝鮮からの卒業、アメリカからの独立。
必要。
絶対。



449 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 02:52:51.75 ID:6vPOYH6k0.net]
>>437
君が作れば良い。ていうかそういう政治団体なら既に沢山あるのでは?

450 名前:デフォルトの名無しさん [2022/09/24(土) 02:54:09.09 ID:75jIGLYK0.net]
>>440
私には私の持ち場があるので。
自分の持ち場を守る。
自分の立場では、中韓が主敵となる。
アメリカとは力の差がありすぎて同じ戦場に立つことすらできない。

451 名前:デフォルトの名無しさん [2022/09/24(土) 02:55:09.21 ID:75jIGLYK0.net]
>>442
他国の支援を受けていない政党は共産党しかないが、共産党はダメだ。

452 名前:デフォルトの名無しさん [2022/09/24(土) 02:57:45.28 ID:75jIGLYK0.net]
>>438
虫ケラとして生き抜く知恵だけど、もう無理じゃないの。
日本自体が無くなろうとしてるのに。
GDPがドイツに抜かれた。
8000万人しか人口ないのに。

453 名前:デフォルトの名無しさん [2022/09/24(土) 02:59:57.20 ID:75jIGLYK0.net]
自民党は統一教会の支援受けてるし、日本のために働くことが出来ない。

454 名前:デフォルトの名無しさん [2022/09/24(土) 03:04:02.31 ID:6vPOYH6k0.net]
>>444
じゃあ自分で作れ。
大丈夫。現実に1人で国政政党作っちゃった人も居るから。やってやれないことはなかろう。頑張れ。

455 名前:デフォルトの名無しさん [2022/09/24(土) 03:04:58.63 ID:75jIGLYK0.net]
>>447
蓮舫を育てようと思います。

456 名前:デフォルトの名無しさん [2022/09/24(土) 03:08:40.20 ID:75jIGLYK0.net]
国民ファーストの政治を必要とするなら、自分で政党を立ち上げなければならない。

これ、もはや国家崩壊してるでしょ。

主権が国民に無い。

主権者が統一教会になっちまってる。

457 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 06:11:34.12 ID:+qZ8jiZga.net]
で、C言語話は…?

458 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 06:40:53.02 ID:52DloiQc0.net]
>>420
詳細知らんけどそれって単に契約のやり方がまずかったって話じゃねーの?
契約書に書いてないのに未来永劫パートナー契約し続けてもらえると思ってたなら頭おかしい



459 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 07:25:32.65 ID:wr9kx4s90.net]
書き込み順位&時間帯一覧
1 位/32 ID中 時間 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Total
書き込み数 9 0 12 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 23



使用した名前一覧 書き込んだスレッド一覧
デフォルトの名無しさん (ワッチョイ 5f01-JEMU)
デフォルトの名無しさん (ワッチョイ b701-JEMU [60.87.151.68])
C言語なら俺に聞け 159
【統計分析】機械学習・データマイニング32

460 名前:デフォルトの名無しさん (ワッチョイ 7f2c-i8Eu) mailto:sage [[ここ壊れてます] .net]
東大・財務省が中華。
御用学者の浜田・伊藤などが、日本の借金が千兆円あると嘘を流して、
30年間緊縮財政を続けて、軍事費を減らした

だから、高橋洋一・三橋・中田敦彦・山本太郎などが、
借金は本当に千兆円あるのかとか、YouTube で言い出した

30年間で金融緩和をしたのは、安倍・黒田だけ。
だから円安になって、労働人口が増えた。
それが民主党・中華に都合が悪かった。それで暗殺された

NHK 党の黒川がNHKの討論番組で歌った歌がある
「安倍は、おじいちゃんの代からCIA」

安倍の祖父・岸信介はCIAだから、戦犯を許されて総理になった。
CIAが共産党と戦うために、文鮮明・統一教会と

461 名前:組んだ。
これが反共産主義の国際勝共連合

でも、また財務省が円安を嫌って、為替介入した。
これには米国・欧州もあきれた。
金融緩和して、0金利を続けているのに、それとは逆の円高にするの?w

岸田ロボットを操作している木原官房副長官も、東大・財務省だから中華。
楽天も中華資本が入ってる。
だから、ガーシーに叩かれている
[]
[ここ壊れてます]

462 名前:453 mailto:sage [2022/09/24(土) 08:46:42.89 ID:L5pk3riv0.net]
RAPT理論プラスアルファ
ガーシーは中共のハニトラ工作員!! NHK党は中国共産党の工作機関

YouTube に動画あるけど、
このデマには、さすがにNHK 党も怒って、この動画の謎の美人2人を訴えると言ってるw

これはラプト様を使っての、ロリ谷・木原の逆襲かも

むしろ、中華のハニートラップは林。
大王製紙の井川が、安倍から聞いたと言ってた。
たぶん、林はハニトラに掛かっていると

463 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 10:52:53.07 ID:9ODShywE0.net]
構造体のメンバー変数にstaticが書けなくてつらい悲しい

struct Hoge {
 static int x;
 static int y;
};

464 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 11:31:35.42 ID:Ohf7lvDf0.net]
>>455
それで何がしたいの?

465 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 11:39:11.29 ID:uYCDlyGwM.net]
C言語的には
int Hoge_x;
だな
C++的には::で繋ぐところを、Cでは_で繋ぐ
それでええやん

466 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 12:15:29.27 ID:52DloiQc0.net]
>>455
static struct Hoge hoge; じゃダメなの?

467 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 12:49:54.31 ID:OHRjm0Oh0.net]
Java脳に3000ペリカ

468 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 13:02:23.00 ID:9ODShywE0.net]
もう覚えてないんだけど、countだけシングルトン風に管理したかったんだと思う。

struct Hoge{
 static int count;
 int data;
};

Hoge *hoge;
hoge=malloc(sizeof(Hoge)*n); // dataは配列

Hoge.count // countはシングルトンっぽく



469 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 13:27:17.87 ID:52DloiQc0.net]
>>460
ああなるほど、やりたくなる気持ちはわかるし実装もそんなに難しくはないように思う
ただそんな要望がどれだけあるかと言うと...

470 名前:デフォルトの名無しさん [2022/09/24(土) 13:35:25.97 ID:PoJJisuz0.net]
>>453
10年以上かけて、ドイツにGDPを追い抜かれるんだから、アベノミクスは大失敗だよ。

専業主婦だった人はもとより、70歳以上の人まで働いてるんだよ。
そこまでして、国際的地位が落ちて行ってる。

これはもう、力の差を認めて、地道に教育に力を入れるしかない。
30年後の復活を目指して。

471 名前:デフォルトの名無しさん [2022/09/24(土) 13:38:33.45 ID:PoJJisuz0.net]
女性や老人を働かせたことで、子供を見る人が居なくなり、出生率がさらに低下してる。
20年後の見通しもさらに悪化した。

472 名前:デフォルトの名無しさん (テテンテンテン MMde-0S4t) mailto:sage [[ここ壊れてます] .net]
>>461
いや実装は無理だろw
mallocしてんのに、一部分だけ共有するんだぞ
もっとデカイ単位なら仮想記憶のトリックで可能だろうけど

473 名前:デフォルトの名無しさん (テテンテンテン MMde-0S4t) mailto:sage [[ここ壊れてます] .net]
Cにnew演算子を導入するところから始めないといけないから、変更点がデカすぎる

474 名前:デフォルトの名無しさん (ワッチョイ 12ad-r4yT) mailto:sage [[ここ壊れてます] .net]
count だけポインタにして初期化の時に static の変数へのポインタ入れておけば良いんじゃね?

475 名前:デフォルトの名無しさん (ワッチョイ 1201-ut7I) mailto:sage [[ここ壊れてます] .net]
>>464
static の変数は静的領域に割り付けてそれ以外の変数だけをヒープやスタックに確保するだけでいいだろ
>>460 の例なら
static int _Hoge_count;
struct Hoge{
 int data;
};
みたいな感じ
まあインスタンスを生成してないのにcount が割り付けられるのは気持ち悪いとかあるけど

476 名前:はちみつ餃子 mailto:sage [2022/09/24(土) 18:16:51.56 ID:2HWwrIyG0.net]
要するに C++ でやってるみたいに出来ればいいねという話だろう。
構造体を名前空間の一種としても使うとなるとマングルが必要になるから割と面倒な話だと思うよ。

477 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 18:20:14.80 ID:5HKoejah0.net]
>>460
C言語のstaticの意味を他の言語と勘違いしてるっぽい

478 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 18:22:42.35 ID:Ohf7lvDf0.net]
そこはC言語固有のキーワードではなく
言わんとするところをくみ取って許してやろう



479 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 18:38:39.89 ID:5HKoejah0.net]
そっか

480 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 19:23:44.32 ID:52DloiQc0.net]
>>469
関数内のstatic変数みたいな奴ってことだろ

481 名前:デフォルトの名無しさん mailto:sage [2022/09/24(土) 19:29:04.02 ID:Ohf7lvDf0.net]
配列メンバーなのに実体は一つしかないという

482 名前:デフォルトの名無しさん (ワッチョイ 9fe6-+bWc) mailto:sage [[ここ壊れてます] .net]
>>425
ふむふむ、なるほど、複雑怪奇な仕様をねじ込むことで、より簡単な処理まで改善される、という理解でいいですか?

483 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5f3e-tX/F) mailto:sage [[ここ壊れてます] .net]
>>474
複雑かどうかは重要じゃない。
対応せざるを得ない状況を押し付けるってことだよ。

484 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 01:07:06.13 ID:97XvxZke0.net]
>>431
Huawei App GalleryはAppleストアやGoogle Playを凌ぐ世界最大市場らしいが、少し考えれば当たり前の事だけど
かくいう俺のHuawei製スマホにはHuaweiとPlay両方入ってた、まあ日本向けアプリはPlayの方が充実してるのであまり使ってない

485 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 10:40:52.48 ID:fwqkSCspH.net]
>>475
うふふ、絵文字は各国ともやりたがっているので絵文字には対応せざるを得ない、すると漢字にも完璧な対応を強いられる、ってことですか、策士ですねえ‥‥

486 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 11:23:47.11 ID:LohnzUwr0.net]
unicodeのハングル文字登録で揉めたって聞いたけどどう決着ついたのかな。

487 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 13:10:20.12 ID:5FaXssIeM.net]
>>477
それが完璧にはならんのよ
東アジアの文字幅(East Asian Width)問題がある
ただ色々ワークアラウンドが有るからなんとかなる事が大半

488 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 13:14:31.77 ID:weLer2R50.net]
生後6ヶ月以上4歳以下もワクチン打たないと駄目だぞ
https://www.mhlw.go.jp/content/000985239.pdf



489 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 13:15:17.92 ID:weLer2R50.net]
すまん誤爆した

490 名前:デフォルトの名無しさん [2022/09/25(日) 20:31:15.08 ID:g7GNUN1K0.net]
>>340
そういう話ではない。外国人に対して見慣れない表現を使うのは古臭い。

491 名前:デフォルトの名無しさん [2022/09/25(日) 20:35:04.13 ID:g7GNUN1K0.net]
>>344
それは単に日本語みたいな言語が世界の主流ではないから起こる現象。

半角のカナ文字だと濁点、半濁点はそれだけで1文字になる。

英語で日本語を打つときは濁音、半濁音記号を文字として打つ方が楽なのでそうしていることがある。

492 名前:デフォルトの名無しさん [2022/09/25(日) 20:38:08.74 ID:g7GNUN1K0.net]
>>375
その数字と記号の融合表現は日本語独特のものだから。

英語圏はタイプライターの流れを受け継いでいる。
タイプライターだとたくさんの文字には対応できなかった。

493 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 20:40:05.44 ID:ffdbvYikM.net]
ウムラウト

494 名前:みたいな扱いでよかったな []
[ここ壊れてます]

495 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 21:43:25.78 ID:N2ZwTqP1M.net]
>>483
役所とかでフリガナ振る時、升目が有ると濁点を1文字として書いちゃうからな
そういう時に「か゛」みたいのに対応してるのは助かるのだろう
Unicodeはちゃんと1文字として表示してくれる
ま、しょうもない文化だよw

496 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 22:22:02.29 ID:sgDwh9fo0.net]
○の中にアラビア数字
別に違和感感じないと思うけどな

497 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 22:23:46.38 ID:DPfmU3jJ0.net]
①②・・・ああ、機種依存文字だから使うな!と言ってた時代があったなぁ。

498 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 22:25:44.57 ID:eY/sWScXH.net]
黒丸に白抜きで1~199
白丸に黒字で1~199
も準備してほしいなあ



499 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 22:27:37.06 ID:sgDwh9fo0.net]
アルファベットにアンダーライン入れるなんて普通にやってたけどな

500 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 22:38:12.24 ID:sgDwh9fo0.net]
LaTeXだと、これで○内に文字入れられる

\ajMaru{1}、\ajMaru{100}、\ajMaru{101}

501 名前:デフォルトの名無しさん [2022/09/25(日) 23:05:05.48 ID:g7GNUN1K0.net]
>>487
それは日本で生まれ育って、ずっと日本にいるから。

502 名前:デフォルトの名無しさん [2022/09/25(日) 23:06:50.59 ID:g7GNUN1K0.net]
>>488
それむしろ逆で、外国とのやり取りの際は、避けるのがいまの主流。

日本語事情に詳しくない外国人にとっては、丸囲みのニュアンスがわからない。

503 名前:デフォルトの名無しさん [2022/09/25(日) 23:07:39.55 ID:g7GNUN1K0.net]
>>490
それ文字として分ける必要がないだろうに

504 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:10:54.01 ID:sgDwh9fo0.net]
丸数字も同じでしょう
アラビア数字の修飾なんだから

505 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:12:36.12 ID:sgDwh9fo0.net]
漢数字を丸囲みしたら、それは読めないかもしれないが
中味は万国共通のアラビア数字なんですよね
ローマ数字なんかよりは遙かに分かりやすいでしょう

506 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:13:51.02 ID:sgDwh9fo0.net]
避けるのが今の主流って言う根拠示せますか?

507 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:14:39.94 ID:sgDwh9fo0.net]
独自主張としか見えないんですよね

508 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:38:41.08 ID:PDKGWlWe0.net]
>>497
今と言うか昔から海外の資料で丸付数字なんて見たことない
って言うのは理由にならんか?



509 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:48:49.59 ID:sgDwh9fo0.net]
ならないでしょ

510 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:54:40.36 ID:sgDwh9fo0.net]
使われていないということと
避けるのが今の主流という主張では、
開きが大きすぎる
使ってはいけないものなら、
国際化される際に却下されても良いでしょう
ウムラウト等のアクセント記号も使ってはいけなくなりそう
英文字のアンダーラインと同様アラビア数字の修飾と受け取れば良いのでは

511 名前:デフォルトの名無しさん mailto:sage [2022/09/25(日) 23:58:01.58 ID:sgDwh9fo0.net]
特に異議がなければ、スレ違いですので、私はこの話題は止めたいと思います
続けるまら、この板の文字コードスレに移動した方が良いと思います

512 名前:デフォルトの名無しさん [2022/09/26(月) 14:23:54.07 ID:heiSJ5NKa.net]
よほど埋めたい話題が100レス以上前に

513 名前:デフォルトの名無しさん [2022/09/26(月) 18:48:56.08 ID:4uVE3Hdr0.net]
>>497
日本のグローバル企業は、PCですら英語キーボードで統一している。

ファーストリテイリング社は日本でもすべて英語キーボード。

日本語、英語、中国語が社内公用語で、日本語特有の文字は使わない。

514 名前:デフォルトの名無しさん [2022/09/26(月) 18:51:46.46 ID:4uVE3Hdr0.net]
>>502
あのさ、英語のドキュメントや、英語のマニュアルが原文の日本語で①や②なんて見たことねえだろ?

しかも丸で囲むことにたいした意味がない。
①だったら、1. と書けばいい。

515 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 19:13:51.47 ID:m6MfDOb60.net]
>>505
>>499 が実現すると記譜が書けるようになるんですけど

516 名前:デフォルトの名無しさん mailto:sage [2022/09/26(月) 22:51:14.79 ID:n/I9g/yq0.net]
>>504
使

517 名前:、文字とキーボードってほとんど関係ないんじゃ? []
[ここ壊れてます]

518 名前:デフォルトの名無しさん (ワッチョイ b35f-4fyb) [[ここ壊れてます] .net]
>>507
じゃあ、英語のキーボードで日本語の記号をどれだけ変換なしで入力できるか、やってみて感想を書いてくれ。



519 名前:デフォルトの名無しさん (ワッチョイ b35f-4fyb) [[ここ壊れてます] .net]
英語のキーボードはとにかくキーが少ないから苦労するよ。


アプリケーションのショートカットキーも日本語版と英語版のアプリケーションで違ったりもする。

520 名前:デフォルトの名無しさん (ワッチョイ 1263-tX/F) mailto:sage [[ここ壊れてます] .net]
英語キーボードで、ドイツ語のsや、フランス語のcってどうやって入力するんだろう

変換無しで頼む

521 名前:デフォルトの名無しさん (ワッチョイ 1263-tX/F) mailto:sage [[ここ壊れてます] .net]
ちゃんと貼り付いてなかった

ドイツ語のエスツェット(βに似ている奴)、フランス語のシーセディーユ(ヒゲのあるC)
それぞれの国用キーボードだと入力は簡単なんだろうが

522 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 21:09:33.13 ID:/UUTRmF20.net]
>>508
変換なしって、カナ入力か?使ったことないからわかんないや。
というか、漢字の入力でさえ変換が必要なのにそんな変な縛りを入れる意図はなんだろう。

523 名前:デフォルトの名無しさん mailto:sage [2022/09/27(火) 22:52:29.05 ID:6x+L03Z70.net]
ctrlなんとかで打つか
記号や数字のキートップを犠牲にしているようですね

524 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 11:46:12.53 ID:3agmovDa0.net]
>>510,511

ß "s-zet" (ß): Hold down "control" and press the ampersand (&) (i.e. Shift + 7)
Cédille (ç), type ' then c. Circonflexe (ê), type ^ (shift + 6) then e. Tréma (ö), type ” (shift + ') then o. To type French quotation marks « » use ctrl + alt + [ and ], respectively.

525 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 21:52:38.01 ID:rizFYsT00.net]
スレチだったら申し訳無いんですが…
WinFormsやQt、WindowsOSのエクスプローラといったGUIのコントロール(ボタンやテキストボックス等)って
一般的にどの程度のインターバルでユーザの入力を監視しているものなんでしょうか?
モニターのリフレッシュレート?60Hzとか決め打ち?

526 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:06:07.08 ID:FwwpeUCX0.net]
1文字キー入力するとイベントが発生するので1文字毎じゃないの?
そういう話じゃなくて?

527 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 22:35:53.49 ID:Jk2txA1W0.net]
ゲームじゃないんだからフレームレート毎の判定になんて普通はならない
(大昔のゲームならボタンなどが押されたか判断する為に、レジスタをVBlank中にチェックするみたいなのはあった)
>>516が言う通り、OSがキーイベントが発生してGUI部品にも伝播されるからOSの処理に依存しているという感じかと
もっと細かく言えば、キーボードを押されると割込みが発生してOSがそれを処理し
該当のウィンドウのイベントキューにキーイベントを設定するみたいな流れかと思う
ボタンなどは大体が親ウィンドウから伝播される流れかと思う

528 名前:はちみつ餃子 mailto:sage [2022/09/28(水) 22:37:47.62 ID:koSj9wX00.net]
>>515
昔のデバイスではハードウェア割込みを使っていたが USB はホスト側からのポーリングが必要で、ポーリング周期は 1 ミリ秒。
監視の周期は 1 ミリ秒といえると思う。
私も詳しいことは知らんから規格を読んで。



529 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 23:04:30.86 ID:rizFYsT00.net]
画面の更新とは独立して検知しているんですね。
レスくれた方ありがとうございます。

530 名前:デフォルトの名無しさん mailto:sage [2022/09/28(水) 23:08:09.59 ID:TpKsshQJ0.net]
このスレは言語だけでなくハードにも詳しい人がいるから面白い

531 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 00:10:32.04 ID:SSQ+XiTZM.net]
Linuxでマウスのポーリング間隔を計測したら124Hzだった
かなりの高頻度でポーリングしてんだな
USB3.0ポートに繋いでるからかもね
安もんマウスなんで高頻度過ぎて多分無意味w

532 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 02:33:05.99 ID:LGluMbhi0.net]
ここで聞いていいかわからないんですが、↓こういうことをCでできますか?
https://ideone.com/TqQjef
func1〜3を並列で動かしたいということです。
おかしな質問だったらごめんなさい。

533 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 03:21:58.53 ID:A75TDx2R0.net]
字面通りの仕様ならばFIFO QueueとThreadかな。あと排他制御も必要。
C++にはdequeというのがあるがC言語には無いのでFIFO Queueは自作。
threadとmutexはpthreadにある。

そもそも並列処理にする必要があるのかという疑問。

534 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 07:11:32.06 ID:u1XdWODdd.net]
その用途にdequeはあんまり使いたくない

535 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 10:55:30.48 ID:LGluMbhi0.net]
>>523
なるほど、マルチスレッドならできそうですね。
ありがとうございました。

536 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 11:36:57.56 ID:coJQxMplM.net]
1reader 1writer なら、ロックの要らないリングバッファが有るからそれ使えば簡単

537 名前:デフォルトの名無しさん [2022/09/29(木) 20:52:44.75 ID:JJSkrqV80.net]
>>515
それ機械的な割り込みのことを聞いているのか?

538 名前:デフォルトの名無しさん [2022/09/29(木) 20:58:02.77 ID:JJSkrqV80.net]
出力と入力が同じようなものと思うの発想が斬新だなw



539 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 21:32:48.50 ID:mQhfaXoY0.net]
V-Sync割り込みとかで止まってる爺かも

540 名前:デフォルトの名無しさん mailto:sage [2022/09/29(木) 23:05:54.85 ID:A5fNHdBh0.net]
HALTして割り込みで復帰が普通

541 名前:デフォルトの名無しさん [2022/09/30(金) 03:14:55.05 ID:iZ78CqR8a.net]
質問者はキーボードやマウスなど入力と、画面の表示が一緒だと思っているようなコンピューターオンチだ。

画面はパラパラアニメだということもわかっていない。
アニメや映画の仕組みもわかっていないレベル。 

542 名前:デフォルトの名無しさん [2022/09/30(金) 03:21:25.79 ID:iZ78CqR8a.net]
ハードウェアよりBIOS、BIOSよりOSが低レベルを担っていると思うのは、すべてが逆だよな。

日本人は機械がなくてもWindowsがあれば、掃除機が出現すると思うレベルまでITオンチが進んだのか。

とにかくおそろしい。

543 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 07:11:56.10 ID:8MIWcIcdd.net]
通販?

544 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 09:18:49.43 ID:gcn5oswqr.net]
>>518
www.kumikomi.net/archives/2007/03/22usb1.php?page=5
本家あたるのはしんどいので、似たところでこれか
USB の電線上では 1ms(125us) だけど
USBホストコントローラから CPUへ割り込みの発生もやってるっぽい (ホットプラグ関連)

545 名前:デフォルトの名無しさん [2022/09/30(金) 18:40:09.67 ID:J+iH2myB0.net]
一部のゲームだとOSから発生したマウスイベントを処理するんじゃなくてゲームのメインスレッドでボタン押下をチェックしてボタン押下の処理をすることもあるし、
質問者がそう思うのも不思議じゃないかな。
普通のGUIフレームワークじゃイベントはキューに貯まると思うけども。

546 名前:デフォルトの名無しさん mailto:sage [2022/09/30(金) 20:39:03.45 ID:wR7Vqe0SM.net]
家庭用ゲーム機の場合は入力をポーリングしてる気がしないな
ゲームコード側から1/60秒毎に要求が有るからそれに対応すれば良いだけだし
ま、確証は無いけどね

547 名前:デフォルトの名無しさん [2022/09/30(金) 20:54:41.19 ID:J+iH2myB0.net]
実際処理落ちするとフレームが更新されるまでボタンを押し続けないと駄目なゲームって結構あるでしょ。そういうことだよね。OpenGLなんかでプログラム書くと普通にグラフィック更新とキー処理なんかは同じスレッドでするしね。
普通のGUIアプリでもOSのカーネルタスクがめちゃくちゃ重くなるとキー入力を取りこぼしたりするのは、ポーリングが人間の入力に間に合ってないからだと思うな。遅れるわけじゃなくて初めと最後だけ入力されたりとかする。

548 名前:はちみつ餃子 mailto:sage [2022/10/01(土) 01:21:56.84 ID:yMZ0QeEO0.net]
アプリケーションレイヤでの話としては Windows のコントロールは基本的にメッセージを介した非同期的な
処理なので周期もくそもないんだけどこのスレに現れて GUI フレームワークの知識があるくらいの人 (>>515) が
イベントドリブンの理念を知らないなんてことあるだろうか?
根本的な勘違いをしているのか質問が下手なのか。
どういう事情があってこういう質問をしたのか気になる。

一応はある瞬間に状態を取得する API (GetAsyncKeyState) もあってゲームとかではそれを使うこともあるが……
その場合にはディスプレイのフレームレート (というかそのソフトで画面を書き換える頻度) 以上の頻度で読んでもあまり意味がないから
フレームレートに合わせるということはあるかもしれんね。



549 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 01:42:40.84 ID:QBMbIy+T0.net]
ある8bitPCのBASICでVsync割り込み時にキーボード信号読み取ってたの思い出した。
(INPUT、INKEY$等キーバッファ関連用)

550 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 01:53:45.14 ID:6Ogoexfu0.net]
ファミコンやスーパーファミコン時代はVSync割込みが始まってVBlank期間内に
あらゆるレジスタの入出力をしないといけないので、キー関連はそのタイミングで取得して
内部の特定ワークに保存(一つ前の情報も残しておいて押しっぱなしかどうかの判断も出来るようにする)してた
最近だとUnityでもキーの状態を取得する処理があるので
ゲームだと処理タイミングの時点で取得も普通にあるという事なのだろう

551 名前:デフォルトの名無しさん mailto:sage [2022/10/01(土) 09:29:35.56 ID:k1H7sgVC0.net]
陰気$
陰茎$

552 名前:デフォルトの名無しさん [2022/10/01(土) 14:27:53.39 ID:AfDQiB090.net]
>>535
それDirectXとかの場合でしょ?、

553 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 14:33:41.09 ID:HMtDa2gtd.net]
>>540
ハードウェア上の要求というより
画面上のキャラが1単位動く間に2回以上キー入力できても意味がないから…

ゲームセンターあらしではパックマンのモンスターが1/60秒に一回しか動けないことを見きってそれ以上の速度で動いてかわしてたっけなw

554 名前:デフォルトの名無しさん mailto:sage [2022/10/02(日) 17:08:59.14 ID:6R54+eoOM.net]
炎のコマw
自機だけ超速で動かすとか、絶体不可能なのはちょっと考えれば分かる事だが、子供の頃は夢中になって読んでたな
平和な時代だった

555 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 07:25:12.33 ID:W4n4sBc4d.net]
高橋名人は16連射してたけど、1ギガ連射位すれば高周波で誤動作させたりできるんじゃね? 知らんけどw

556 名前:デフォルトの名無しさん (ワッチョイ 7f36-8eI1) mailto:sage [[ここ壊れてます] .net]
某レースゲームは画像は60fpsでも内部では120fpsだか240fpsで処理(挙動計算?)
してるってインタビューあったわ。

当時はすげぇと思ったけど、PCの場合モニタのフレーム数(60/144Hzの違いとか)によって挙動(操作感覚)
が変わるの防ぐには必要な仕様なんだと思った。

557 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 09:27:43.78 ID:f3Oj1zc00.net]
この話に標本化定理って関係ある?

558 名前:デフォルトの名無しさん [2022/10/03(月) 11:06:24.59 ID:BGisZcina.net]
>>515
ポーリングじゃなくてハードウェア割込みでメッセージキューに入るんだろ
敢えてポーリングってことで言うならメッセージループディスパッチャを回す速度に依存



559 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 11:12:07.71 ID:BGisZcina.net]
>>534
USBじゃなくて受信機がUSB接続のリモコンとか
bluetoothの可能性もあるな

560 名前:デフォルトの名無しさん (ワッチョイ 2369-7uza) mailto:sage [[ここ壊れてます] .net]
>>549
(Windowsで)キーボード・マウスの HIDドライバがどういうことやってるか調べることになりそうだな
イベントドリブンになってるのか、テーブル更新しつつ親元でポーリングしてもらうのか

561 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 16:42:09.20 ID:wqwjoJ6ZM.net]
>>546
物理エンジンは1フレーム内でほんのちょっとずつ動かしながら何10回も計算するよ
現実を模倣するには無限大回数計算しないといけないけど、コンピューターでそんなこと不可能だし、floatの精度の問題も有るから適当なところで妥協しないといけない
その辺が工夫のしどころなんだろう

562 名前:デフォルトの名無しさん (スッププ Sdff-o6p2) mailto:sage [[ここ壊れてます] .net]
その最少単位をフレームと呼ぶんじゃないかね

563 名前:デフォルトの名無しさん (ワンミングク MM9f-A0fl) mailto:sage [[ここ壊れてます] .net]
処理回数なんてメインループのsleep(0.1)をsleep(0.05)にするだけじゃね

564 名前:デフォルトの名無しさん mailto:sage [2022/10/03(月) 23:10:54.51 ID:i+Hjk1b8M.net]
>>552
いや、1/60秒は余りにも刻みが粗すぎる
もちろん表示するのは1/60秒の1フレーム単位だけど

565 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 06:12:56.51 ID:zVvu+tPFd.net]
1/60が「フレーム」じゃないぞ

566 名前:デフォルトの名無しさん [2022/10/04(火) 17:12:48.24 ID:yz9a92LC0.net]
画面表示の仕組みを知らないやつは延々と変なことを言い続けるんだろうな

567 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 17:45:25.41 ID:aM4Np9N0d.net]
昔は単純だったな
1/60か1/30程度の違いしかなかった
今では画面リフレッシュ・画面レンダリング・ゲームメインのすべてフレームレートが違うこともあり得る

568 名前:デフォルトの名無しさん mailto:sage [2022/10/04(火) 19:20:23.55 ID:HRzr8cMv0.net]
https://ja.wikipedia.org/wiki/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AC%E3%83%BC%E3%83%88
フレームレート (Frame rate)は、動画において、単位時間あたりに処理させるフレームすなわち「コマ」の数(静止画像数)を示す、頻度の数値である[1]。



569 名前:デフォルトの名無しさん [2022/10/05(水) 15:02:45.22 ID:e4u4SFLE0.net]
>>557
そういう話ではない

570 名前:デフォルトの名無しさん mailto:sage [2022/10/05(水) 15:08:40.11 ID:j989iulk0.net]
ここはC言語のスレなんだから、もうちょっとC言語寄りの話題に

571 名前:デフォルトの名無しさん [2022/10/07(金) 12:25:51.07 ID:d4ub3t4La.net]
最小tickがOSのAPIに依存する件
(というか関数毎に違うよね)

572 名前:デフォルトの名無しさん (スッップ Sd1f-o6p2) mailto:sage [[ここ壊れてます] .net]
APIは単に最少論理単位を定義してるだけで実際の最少単位はOSバージョンやハード構成によって変わるはず

573 名前:デフォルトの名無しさん (スッップ Sd1f-o6p2) mailto:sage [[ここ壊れてます] .net]
>>558
>CGの用語では、この処理レートを「フレームレート」と呼ぶ場合があったため、混乱が生じた。

574 名前:デフォルトの名無しさん [2022/10/07(金) 22:30:13.84 ID:XEr8QNZEM.net]
VRAMにあるデータを決まった間隔でモニターに表示する。

VRAMのデータの書き換え速度はビデオボードによる。

C言語そのものは画面表示の速度の規約がない。

C言語は画面表示のライブラリすら持っていない。

575 名前:デフォルトの名無しさん [2022/10/08(土) 04:40:32.95 ID:M3iYd9Ol0.net]
日本が世界に誇るハイレゾリューション VGA 640x480 60 Hz インタレース。
日本の技術は世界一。

576 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 10:43:30.99 ID:PvpQyv2P0.net]
おじいちゃん、その昔話は耳にタコが出来るくらい聞いたわよ(´・ω・`)

577 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 12:19:20.81 ID:ZnjC3ipUd.net]
PC98やファミコン時代の話は誰も求めてないだろw

578 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 13:35:27.64 ID:bICsKedU0.net]
MSXは?



579 名前:デフォルトの名無しさん [2022/10/08(土) 20:16:07.42 ID:ymYjs6gE0.net]
>>565
PC-9801 は 640x400 じゃなかったかな?
640x480 の VGA は IBM-PC の方だからアメリカでは?

580 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 20:26:05.65 ID:0FC8+6ie0.net]
IBM-PC 最初の頃の規格だとCGAで80x25、640x200だったような
8000シリーズでもこれに合わせてたような
VGAはPS/2あたりから出てきたんじゃなかったかな
EGA, MCGA, VGA, SVGA, XGAとか、色々あったっけな

581 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 21:21:27.32 ID:HMr71tmI0.net]
>>569
だよな
98は400を「超高解像度」と言ってたw

582 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 22:15:12.93 ID:ZFrVAqsjM.net]
VGAと言ったら320x200だな
1ドット1バイトなので丁度64KBになって、16bitコードがリニアにアクセス出来た
ただ、1ドットが正方形じゃないので、正方形のMode X(320x240)を使うにはDOSエクステンダーが必要だったな

583 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:35:22.44 ID:+S45qfPzd.net]
>>572
どーでもいいことだが
聞き捨てならんw
320x200は65536じゃねーよw

584 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:45:07.70 ID:0FC8+6ie0.net]
じゃあ、PC8001 はVGAだったんだな

585 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:49:08.81 ID:uyhPMEAG0.net]
画面に表示されない、VRAMの余り部分はCG用ワークエリアに使われることが多い。
88とかは1プレーンに16Kバイト用意されてるけど、表示されるエリアは640ドット(80バイト)x200ラインで16000バイト。
あまった384バイトを使って背景とキャラを重ね合わせ描画をして表示エリアへ転送とかやってた。


話をプログラム寄りにもどして、
ゲームでCG表示が他ゲーより余りに遅いの見かけると、
CG周りをアセンブラじゃなくてC等の高級言語で書いてるんじゃないかと邪推してた。

586 名前:デフォルトの名無しさん mailto:sage [2022/10/08(土) 23:52:19.01 ID:ymYjs6gE0.net]
縦が200ドットというのはNTSCでの出力の都合だろうな。

587 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 00:46:24.07 ID:MI3uCIAzM.net]
>>573
丁度じゃなかったw
ま、64KB以内ということで

588 名前:デフォルトの名無しさん [2022/10/09(日) 04:58:58.93 ID:PpV7AUpt0.net]
そういや昔インターレースなのを利用して400ドットを表示するなんてことやってなかった?
チラチラして見れたもんじゃないが一応表示はされるという。



589 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 06:16:13.64 ID:pElHhn0J0.net]
>>578
Basic Master Level 3 かな
かな文字表示のためにインターレース表示しててチラつき防止のために専用の長残光ディスプレイがあった

590 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 11:31:59.17 ID:ktekxUQbd.net]
わー懐かしい
カーソル点滅が速くて仲間内でハイフラって呼んでた

591 名前:デフォルトの名無しさん [2022/10/09(日) 15:31:02.03 ID:ER77cUawF.net]
PC98でラスター480表示するTSRも存在した希ガス

592 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 16:21:41.40 ID:bJ7Ye0Ve0.net]
26行計画だっけか?
表示エリアの外に表示しますってプログラムがあったね

593 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 16:56:05.30 ID:Rj5ElR5Pd.net]
30行計画

594 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 17:07:00.15 ID:Rj5ElR5Pd.net]
FDDのオーバートラック
286のHMA
CRTCをプログラムでハード破壊
なんか、こういうの色々あったな

595 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 20:59:59.12 ID:x4NHwN4o0.net]
C言語ってパソコンの内部まで理解してないとムズイ?
メモリがどうとかクロック数が幾つとか

596 名前:デフォルトの名無しさん mailto:sage [2022/10/09(日) 21:14:06.38 ID:pElHhn0J0.net]
>>585
> メモリがどうとかクロック数が幾つとか
そんなものは知らなくても組めるけどそもそもC言語使う必要あるのか?

597 名前:はちみつ餃子 mailto:sage [2022/10/10(月) 00:47:38.73 ID:95zl+JNn0.net]
>>585
C の言語仕様は言語仕様上で規定する仮想的な機械の挙動として記述されていて
現実の処理系がどのような機械語を生成するのかは規定してない。
見かけ上の挙動が仕様通りならどういう機械語が生成されてもよいことになってる。
現代的な処理系はすごく高度な最適化をするのでどういう機械語が生成されるのか事前に想像するのは難しいし。

どうしてもすごく高速に動いてほしいプログラムを気合い入れてチューニングしたりする場合には
ハードウェアの知識が必要になることも有るし、
他の言語との接続が必要なときにはメモリの管理方法を協調させないとおかしなことになったりもするけど
結局のところやりたいこと次第だし、入門レベルでは気にする必要はない。

今ならアプリケーションレイヤで動くプログラムでクロックを意識するようなことはまずない。
現代のパソコンやスマホくらいの高級な CPU では機械語を分解して
最適化した内部命令 (インテルだと μop と呼んでいるようだがメーカーによって名称はいろいろ) を生成したりする
工程があるので、クロックも一定とは限らない。
そこまで高度なことをしない CPU でもだいぶん前からパイプラインは採用されてるから、
単純に命令ごとのクロック数を合算した値が処理時間になったりはしないし。

598 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 01:08:56.92 ID:dL9jKsv+0.net]
i++; 辺りは効率の良い機械語翻訳を期待していると思う



599 名前:はちみつ餃子 mailto:sage [2022/10/10(月) 01:16:27.83 ID:95zl+JNn0.net]
言語仕様で規定する仮想的な機械が (C が初期に使われ始めたコンピュータである) PDP と親和性が良すぎるので C のことを PDP エミュレータと揶揄することもあるらしいね。

600 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 06:33:30.58 ID:ICu0RgND0.net]
>>585
何のプログラムを作るかによる
おまえさんが言うようにハードがわかる必要があったり
簿記や不動産取引がわかる必要があったり

601 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 08:21:20.44 ID:C38R1GQo0.net]
おそらくそこまで高度なことは求めてないよ
クロックという言葉を知ってたから口走ってしまっただけで意図としてはハードウェアの知識をつけないとC言語は使えないのかと聞きたかっただけだと思う

602 名前:デフォルトの名無しさん (ワッチョイ 8a7c-O9y3) mailto:sage [[ここ壊れてます] .net]
C言語関連のシステム系の質問していいですか?
微妙にスレチっぽいですが、このスレの人が一番詳しそうなのでご容赦ください。

最近Windows Server 2019マシンを導入し、Windows10で使っていたソフト(他社製)を持ってきたところ
ほぼ全部問題なく動くのですが、一つだけ10倍以上遅いソフトがありました。
そのソフトはexe1個のみの構成で、Dependency Walkerで調べると C:\Windows\System32\msvcrt.dll に依存していました。
(他の正常動作するソフトでmsvcrt.dllに依存するものはなし)
Cにはあまり詳しくないのですが、昔mallocが異様に遅い環境で苦しんだことを思い出し
もしかしてWindows Server 2019のmsvcrt.dllの出来が悪いor相性問題が原因なのではと思いました。

そこで考えたのですが、Windows10のmsvcrt.dllを持ってきて使ってみるというのはどうでしょうか?
とりあえず速度が正常に戻ってくれれば十分なのですが、やめたほうがいいでしょうか?

603 名前:デフォルトの名無しさん (アウアウウー Sa2f-tmeX) mailto:sage [[ここ壊れてます] .net]
やめた方がいい
絶対他に原因あるわ

604 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 11:44:15.39 ID:5N3s1AfQ0.net]
>>593
やっぱりそうですかね・・・
リソースモニターとかで調べてはみたものの原因がさっぱり分かりません。
特にIOが遅いように感じるんですが、ハイグレードなSSDを積んでいるのでハードとしては問題ないと思います。
100万円クラスのマシンですし他のハードもスペック的には問題ないはずです。

ちなみに試しにWindows10のmsvcrt.dllをexeと同じフォルダに置いてみたのですが、どうも使われていなさそう。
dll検索順ってカレントディレクトリが最優先じゃなかったでしたっけ?
できるか知りませんが、System32のdllをspecificに参照するようになっていたらそもそも無理ですね。

開発元に聞けたらいいのだけど諸事情でそれが不可能です。

605 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 13:06:26.88 ID:+EPzVvoud.net]
微妙じゃなくて完全にスレチw
Windowsシステム関連のスレで聞いたほうがいいと思う

606 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cb3e-kHT+) mailto:sage [[ここ壊れてます] .net]
>>594
> dll検索順ってカレントディレクトリが最優先

もし単純にそういう順序を適用するとマルウェアがファイルをそこに置くだけでプロセスを乗っ取れてしまう。
レジストリのどこかに登録されているやつは別扱いにするとかのややこしいルールがあったはず。

> 特に IO が遅いように感じる

IO が遅いというのが事実だとしたら
 ① 物理的に乗っているのが SSD でもハードウェアの自動認識が誤っていて古いインターフェイスでやり取りしている
 ② たまたまそのアプリケーションがデバイスドライバかコントローラのバグを踏むような制御になっている
 ② HDD で性能が出るようにアプリケーション内で凝った制御をしていたが SSD が速すぎて狂った
などの事情は思いつくけど……

607 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 14:32:16.59 ID:5N3s1AfQ0.net]
>>595
Windowsシステム関連のスレがないか探しましたが、どうもこれというのがないんですよね。
Windows板かな?あそこは一般コンシューマが多くてこの手の質問はしにくいのが・・・。
引き続き海外フォーラムを漁ってみます。

>>596
詳しくありがとうございます。
ご提示のものが原因とすると、ちょっと自分の手に余りそうです。

他の似たようなソフトは軒並み問題ないのに何でこのソフトだけ・・・と釈然としませんが
どのWindowsでも同じように動きますなんてそう甘い話はないということかな。

608 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 14:37:10.94 ID:1bdf6+Ty0.net]
存在しないネットワークドライブにアクセスしに行って、タイムアウトするまで固まるとかは時々遭遇するけどはたして



609 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 14:51:34.42 ID:YCEUCnMua.net]
ていうか作者に障害報告しろや

610 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 14:56:11.84 ID:mfO2JKX70.net]
ライセンス料を払いたくないやつかな?

611 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 14:58:25.83 ID:2QXR7TRNd.net]
鯖機だとベンダー独自の機器やドライバが入ってたりするだろうから分かる奴はほぼいないだろうな

612 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 15:00:55.06 ID:dL9jKsv+0.net]
>>597
>一つだけ10倍以上遅いソフト

この製造元に聞くのが最短だと思う

613 名前:デフォルトの名無しさん mailto:sage [2022/10/10(月) 18:15:26.96 ID:5N3s1AfQ0.net]
製造元には軽く聞いてみたのですがサポート対象外ですと一蹴されました。
諸事情により相手のほうが立場が上で、現段階でこれ以上聞き出すのは難しいのですが
上手く機会を作って情報を得たいと思います。
皆さんありがとうございました。

614 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 07:55:01.73 ID:1DnVcsvQd.net]
やはりな

615 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 08:00:48.49 ID:+IdMirEn0.net]
Windows Server で Hyper-V 動かしてその上に Windows 10 入れてそのアプリ動かせばええやん

616 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 09:05:08.75 ID:1DnVcsvQd.net]
ハイパーバイザー型よりホスト型の方が融通効くしフリーのもある

617 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 09:19:51.89 ID:lDI8MaGS0.net]
個人利用なら好きにすればいいけど共用のサーバー機でそんなことして問題起きると責任問題になるよ

618 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 09:26:18.23 ID:+IdMirEn0.net]
>>606
Hyper-V は両方あるからわざわざ 「Windows Server で」って書いてある


>>607
普通はシステムのdll置き換えようとしてる時点で責任問題になるしそもそも Windows 10からアプリ持ってきてる時点でライセンス大丈夫か?って思うだろ



619 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 09:44:54.24 ID:S5uegLjFa.net]
msvcrtってMicroSoft Visual C/c++ RunTimeなんだよね
C言語ってライブラリを静的リンクすることが多いけど共通部分をdllにしたらディスク容量が少なくて済むんじゃねって発想で作られた過去の遺物
今は積極的に使うべきものじゃない
おそらく古い古いソフトなんじゃね

620 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 09:48:41.00 ID:S5uegLjFa.net]
そういう古いソフトは当然のように32ビット(ひどい時には16ビット)だから64ビット環境ではエミュレーションが働く
その辺に何かありそうな気がするな知らんけど
コンパイルし直せば直るような気がしないでもないがメーカーが対応する気ないんじゃどうしようもない

621 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:18:13.05 ID:UUE3JARA0.net]
>>585
メモリとハードディスクの違いくらいはわかってないと無理でしょ

622 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 14:24:20.66 ID:e/MLj7zo0.net]
Z80 は楽だったなあ

623 名前:ハノン108 mailto:sage [2022/10/11(火) 18:29:10.92 ID:RNyxjBqNH.net]
>>610
16ビットはエミュレーションは利きません!

624 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 18:50:36.59 ID:D4ywmAPt0.net]
>>613
なんで?
https://learn.microsoft.com/ja-jp/sql/odbc/microsoft/using-16-bit-applications-with-32-bit-drivers?view=sql-server-ver16

625 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:07:33.88 ID:M2HX+v9qM.net]
64bit Windowsでは16bitアプリは動かせない(エミュレーション環境は32bitだけ)
32bit版Win10 ならかろうじて可能性はあるがWinServer2019は64bitだけなので完全に無理

626 名前:ハノン mailto:sage [2022/10/11(火) 19:10:36.62 ID:RNyxjBqNH.net]
>>614
それは 32 ビット版 Windows の話
64 ビット版 Windows は 16ビットアプリを捨てました、AMD64 アーキをもっと勉強してね!

627 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:31:53.97 ID:D4ywmAPt0.net]
>>616
サードパーティだがWineVDMというのを使えば動くようだ
勉強になったか?

628 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 19:49:30.50 ID:e/MLj7zo0.net]
32ビット版の仮想を動かしてその中で16ビットアプリを動かす事は出来る
そういう多段ロケット使えば良いんだがそこまでして今動かすものがないw



629 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:01:38.90 ID:1DnVcsvQd.net]
>>616
64bitホストに32bitゲスト載せるとさ
普通に16bitアプリを実行できるんだけど
本当にハード的に不可能なんかね?

630 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:05:48.94 ID:1DnVcsvQd.net]
32bit OSでは4GB超えできないとかさ
マイクソの集団催眠にかかったやつの言う
ちったあ勉強しろってマウントは
呆れるの通り越して笑う価値もない

631 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:10:22.58 ID:D4ywmAPt0.net]
エミュレータ使うならできない理由はないなあ
単にマイクロソフトが自前のエミュレータの提供をやめたというだけでAMD64がどうとか言うのは知識不足のマウンターの妄言としか思えないな

632 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 20:51:12.11 ID:X1iGovPsM.net]
32ビットすら打ち切りたそうなのに?

633 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:06:01.71 ID:aJhELtxJ0.net]
じゃあまずお好きな言語でエミュレータを作ってそこで動くZ80プログラムを作れ。

634 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:06:38.42 ID:aJhELtxJ0.net]
リロード忘れた。間に山盛りに他の書き込みが。
削除できないからもういいや。わすれてくれ。

635 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:31:48.32 ID:aIs/ZXKV0.net]
XP mode はエミュレータか? おいサル

636 名前:ハノン mailto:sage [2022/10/11(火) 22:36:50.66 ID:d6pThQK8H.net]
>>617,619
それってエミュレータでしょ?仮想的なCPUをコードでガリガリ書いてインタプリタしているって奴、そんなのでもまともに動く時代になったんですねえ

>>618,619
私も 16 ビットを 64 ビットで動かすときはエミュっています
http://takeda-toshiya.my.coocan.jp が有名で私も便利に使っています []
[ここ壊れてます]

638 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 22:46:46.46 ID:D4ywmAPt0.net]
>>626
AMD64の勉強したらこの話に関係ないことがわかったか?



639 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 23:02:05.82 ID:d6pThQK8H.net]
まあ私も「エミュレーション」という言葉を、ソフトウェアによるエミュレーションか、80386 がやり始めた仮想86モードという意味でのエミュレーションかをはっきり区別せずにパンパン書いたせいもありますね、ごめんなさいね

640 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 23:04:40.15 ID:D4ywmAPt0.net]
WOW64とサンクはその話とはまた別だぞ
それはハードの話だろ
MSが提供しなくなったのはサンクだ

641 名前:デフォルトの名無しさん mailto:sage [2022/10/11(火) 23:21:05.30 ID:aJhELtxJ0.net]
thanks

642 名前:デフォルトの名無しさん mailto:sage [2022/10/12(水) 01:05:29.68 ID:P/bHT4Cpr.net]
サークルKサンクス潰れたから提供のしようがない

643 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 18:58:46.26 ID:fQccGg0Vd.net]
なぜつまらないとわかっていてオヤジギャグを何故言ってしまうのか
チコちゃんで脳科学的に分析してて笑ったわw

644 名前:デフォルトの名無しさん mailto:sage [2022/10/15(土) 19:44:27.23 ID:jaz9tT2QH.net]
>>632
なんでなんで!

645 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 03:24:32.42 ID:y3K9DSVg0.net]
ジジイだからだよ。

646 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 11:13:15.74 ID:SiOwIn850.net]
ここはジジイしかいないからな

647 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 19:25:01.75 ID:aXExphHPd.net]
>>633
歳を取ると語彙が増えていき頭の中でダジャレが浮かびやすくなる
それと同時にセンスが低下して面白いギャグかどうかがだんだんわからなくなる
結果的におっさんはつまらないダジャレを思いついたらすぐ言うようになる

648 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 19:54:53.72 ID:UUAxnkpP0.net]
オヤジギャグやダジャレより
連想したものをただ言ってれば、
例えツッコミ扱いしてくれて楽だろう



649 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 19:58:46.29 ID:4Jg9TvVE0.net]
つまらなくても笑えよ。敬老精神が欠如しているのか。

650 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 20:00:11.34 ID:SiOwIn850.net]
ソースにもだじゃれ入れてそう

651 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 20:25:40.72 ID:w47Nq7BKH.net]
>>639
char aznable

652 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 22:06:49.25 ID:SiOwIn850.net]
カウント変数にcuntは止めろとねんを押された

653 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 22:28:20.65 ID:NFETJM8p0.net]
コーディング規約があるなら守りましょう

654 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 22:29:14.08 ID:NFETJM8p0.net]
一瞬idがNEETかと思ったが違ったw

655 名前:デフォルトの名無しさん mailto:sage [2022/10/20(木) 22:48:13.58 ID:SiOwIn850.net]
ソースではなく、make終了時にBIGCOCKと表示させてた奴を知ってる
本人いたら、ゴメンナサイ、バラしました

656 名前:デフォルトの名無しさん mailto:sage [2022/10/21(金) 21:25:54.17 ID:CZbur0iYd.net]
そう、こういうの
全然どうでもいい事をさも重要な秘密のようにw

657 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:10:33.74 ID:9/1OGIJE0.net]
独り言です
インデントは4を使ってきたのだがプロの世界?では2みたいだな
軽くショックを受けた

658 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:12:57.69 ID:9/1OGIJE0.net]
ちなみにインデント2を使ってるのはcatコマンドのソースです
https://sources.debian.org/src/coreutils/9.1-1/src/cat.c/



659 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:27:37.61 ID:i1fpLCEI0.net]
プロの現場にそういうところもあるというだけだよ
1つ目撃したからってそれが全てだと思うのは
早まった一般化という誤謬だ

誤謬を多発するやつは論理思考が苦手ってことだ
むろんプログラマとしての適性ではマイナス要素だ

660 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:32:06.64 ID:A1wSH6ms0.net]
昔は画面が狭かったからそういう主義のやつも割といた
そろそろ淘汰されてる頃じゃね

661 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:39:15.76 ID:i1fpLCEI0.net]
一画面ルールってのもあったな

662 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:27:39.75 ID:HgiMaBnhM.net]
今でもそこそこ使われてるだろ
一画面とは言わないまでも100行ルールとかの発展型も多い
ひとつの関数が何千行もあればコードレビューで問題にされる

663 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:40:19.94 ID:i1fpLCEI0.net]
ダラダラ書くなって話が廃れたとは言ってないんだが

664 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:25:59.68 ID:+gGQ3BRS0.net]
GNUスタイルのインデントはゴミ

665 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 09:26:11.73 ID:KYgyTmU4M.net]
名前空間やクラスを使わないC言語は特に文が長くなりがちだから、2のほうが使い勝手がいいと思うことはよくある

666 名前:デフォルトの名無しさん (ワッチョイ 1363-HLP5) mailto:sage [2022/10/30(日) 10:52:42.74 ID:vrlOFY0H0.net]
>>647のcatソース見たけれど、
私にはブロックが分かりにくいと感じた
見慣れれば良いのかも知れないが

667 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:05:35.10 ID:wnFbyiurd.net]
>>647
rms仙人の直筆か
プロ?と言って良いのかはさておきスーパーハッカーではあるね

関数呼び出しの()前の空白とかは結構独特なスタイルだと思うぞ

668 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:11:32.88 ID:c3va8FLBd.net]
✗直筆
✓監修

プロとは我らIT土方の事を指すのです



669 名前:おじ乳輪様 [2022/10/30(日) 17:12:30.77 .net]
中括弧の位置とか関数呼び出しのスペースとかなんでこんな独特なスタイルなの?
なんのメリットが?

670 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:24:51.13 ID:xXAnW4UR0.net]
もともとは egrep とかで使いやすい
とかいう理由だった気がする

671 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:30:55.10 ID:1Zssd/uh0.net]
web.sfc.wide.ad.jp/~sagawa/gnujdoc/standards-19981118/standards-ja_5.html

672 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:33:33.15 ID:ZM6oqeKp0.net]
GNUのソースは読もうと思って読んだがあのスタイルに拒否反応が出て駄目だったわ

673 名前:デフォルトの名無しさん [2022/10/30(日) 23:05:10.18 ID:KHak5nKt0.net]
( ´_ゝ`)フーン

674 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:45:46.77 ID:QW7VZG88M.net]
インデントごときで読む気が無くなるのは、単に向いてないだけだなw

675 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:52:22.08 ID:vrlOFY0H0.net]
うん、むいてないからお前がやってくれ

676 名前:デフォルトの名無しさん [2022/10/31(月) 00:03:46.32 ID:EzTz1A6M0.net]
 (
   ´_ゝ`
 )
フーン

677 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 00:23:37.56 ID:8d/Em0+h0.net]
スタイルがあるなら従うべきだけど、300-500行目に連発する
}
else
{
はさすがに目が滑る
スクロールして追うのも辛い

678 名前:デフォルトの名無しさん [2022/10/31(月) 00:32:37.86 ID:MKojko7I0.net]
ブロックの前にインデントを入れてるのはブロックも文なんだから単一文の時と同じようにインデントを入れるべきという理屈かな?



679 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 01:42:04.37 ID:8d/Em0+h0.net]
>>667
それ自体は一貫してるからいい、ただしこの場合は対応するifから平気で50行以上も離れているので、elseだけじゃスクロールバックしないと条件が何か分からん

エディタのfold機能を活用するのもアリだけど、プレーンテキストとして読めるべきという姿勢のようだから、まさに>>660にある
#ifdef foo
...(長いコード)
#else /* not foo */
のようにelseにコメントを添えさえすれば、俺的にはオッケー

余談だけど
個人的にはプリプロセッサの条件も自由にインデントしてる
# ifdef foo
...
# ifdef bar
....
のように
殆ど見かけないから決して他人には勧めはしないけど

680 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 01:43:55.98 ID:oYB2uzRMM.net]
GNUのインデントは、Pythonを考慮すると利にかなってんだよな
if foo:
bar

if (foo)
{
bar;
}
という対応がある
Pythonはインデント自体にブロック要素があるから余計なカッコが要らないけど、Cはブロック要素にカッコが必要だから書いてあると考えれば、実はPythonと一緒なんだよ
これに気付いた時はrmsは天才なんだと思い知らされた

681 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 02:16:22.63 ID:8d/Em0+h0.net]
>>669
結果的に同じ形に落ち着いてるけど、pythonとは正反対の思想から生じている事もお忘れなきよう
尊師の第一言語はcでなく言語に構文要素自体が存在しないlispだから、改行のみからコードブロックとインデントレベルがフォーマッタを問わず一意に定められる

c系統(いわゆるブレース言語)は言語に構文を採用しつつ、フリーフォーム記述の許す折衷だから、フォーマッタとスタイルにバリエーションが生じる

682 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 02:24:22.85 ID:8d/Em0+h0.net]
翻って、エディタ入力支援/フォーマッタプログラム無しにlispを記述するのは事実上不可能に近いので賛美してるわけではないよ
念の為

683 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 11:19:45.88 ID:0hSBCDEtd.net]
))))))))くらいは序の口だし、括弧を数えてたら気が狂うわな
ネストレベルに応じて機械的に挿入されるインデントのみによって構造を把握するから、Lispは実質的にPython並にインデント強制

684 名前:はちみつ餃子 mailto:sage [2022/10/31(月) 11:43:48.99 ID:HpV/6ZOj0.net]
今となっては C だってエディタの支援なしに書く気にはならんけどな。

685 名前:デフォルトの名無しさん [2022/10/31(月) 13:07:16.76 ID:J5/naAYk0.net]
>>673
それは慣れの問題

686 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 15:59:12.44 ID:YDjtl0u50.net]
そう言うのには慣れたくない

687 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 16:35:29.26 ID:gpqFhr3z0.net]
LISP は先にあるんだし、Python の文法は諸々の言語の影響結果だろ
ブロックの開閉で改行するってのは、ALGOL系のBEGIN~ENDの強い影響を感じる
Cではむしろ、少し自由な書式書法になっていたのが退化した

688 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 16:49:19.46 ID:YDjtl0u50.net]
Cが退化したのではなく、人間が退化したんだろう



689 名前:デフォルトの名無しさん [2022/10/31(月) 20:11:09.56 ID:a6AXXlaBa.net]
括弧の入れ子がひどいコードを作ることがやばい

690 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 21:12:31.27 ID:YDjtl0u50.net]
初心者のために、本来不要だけど括弧を付けるときはあった

691 名前:デフォルトの名無しさん [2022/10/31(月) 21:55:34.36 ID:MKojko7I0.net]
ウザ

692 名前:デフォルトの名無しさん mailto:sage [2022/10/31(月) 22:06:42.50 ID:gNe27yrb0.net]
>>679
俺は未来の自分のために言語仕様としては不要な括弧を付ける

693 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 07:24:39.67 ID:8mAHYLmxd.net]
初心者でも務まる仕事か

694 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 15:13:43.68 ID:hGXBrabD0.net]
若手に優しい配慮は必要だと思う
いらないと言うことに気がつけば
それはそいつの進歩だ

695 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 18:32:43.22 ID:8mAHYLmxd.net]
甘やかしでしかない

696 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 18:40:22.15 ID:hGXBrabD0.net]
たった1人で好きなシステム組んでみて

697 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 18:45:14.28 ID:8mAHYLmxd.net]
議論になってない

698 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 20:23:05.05 ID:Lnx9eR9fM.net]
議論なんかしてないだろう



699 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 21:17:55.24 ID:hxzN6YDm0.net]
ということにしたいのですね

700 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 22:30:37.78 ID:hGXBrabD0.net]
オッサンは呼んでない

701 名前:デフォルトの名無しさん [2022/11/02(水) 11:37:22.22 ID:1ThO0l2A0.net]
はつみみです

702 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 21:00:24.72 ID:C3BaP9Oq0.net]
焼き鳥の通だけが知ってる稀少部位?

703 名前:デフォルトの名無しさん mailto:sage [2022/11/07(月) 17:58:10.87 ID:BvZ6DXqw0.net]
>>658
呼び出し前スペースはプリプロセスをm4で強化するときに少し面倒になるな
GNUはm4大好きなのにな

704 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 17:25:16.95 ID:u5cvtrdO0.net]
m4すらすら書ける人います?

705 名前:デフォルトの名無しさん mailto:sage [2022/11/21(月) 03:19:48.32 ID:Amw5zf2Y0.net]
大昔、sendmail.cf を生成するのによく使われてな。久しぶりに名前を聞いた。
autoconf をがんがん使うプログラマがいればワンチャン。

706 名前:デフォルトの名無しさん [2022/11/23(水) 15:53:36.98 ID:U6TEG1mTa.net]
sendmail.cf なつかしす
postfix に乗り換えちゃった

707 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:55:29.66 ID:aRKGS4gV0.net]
CF使った事あるw

708 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:32:01.04 ID:FzNlCQf10.net]
すまん、聞くことないわ



709 名前:デフォルトの名無しさん mailto:sage [2022/11/25(金) 12:49:25.94 ID:PV2ZG9bua.net]
CF は m4 ではないやろ?

710 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 15:02:39.09 ID:ZPuEPm3M0.net]
ttps://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。

711 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 15:40:10.03 ID:q8NQ5dwmd.net]
あなたの環境のせいかと

712 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:09:51.97 ID:JXDLC/Oi0.net]
コードが酷くてワロタw

713 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:26:50.49 ID:jAeBwf3w0.net]
>>699
典型的な scanf() あるあるだな
最初の scanf() で数字 + 改行が読み込まれるが"¥d"だと数字だけ取り出して改行が残っちゃう
2回目以降のscanf()は改行が残っているから入力をスキップしてしまう
scanf 改行 読み込み とかでぐぐると色々出てくる
https://hiroyukichishiro.com/scanf-problems-in-c-language/
回避方法はいくつかあるけど、個人的には
static b[100];
fgets(b, sizeof b, stdin);
N = atoi(b);
...
fgets(b, sizeof b, stdin);
d[i].key = atoi(b);
みたいにするかな

>>700
釣りか?

714 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:29:17.59 ID:LIu803lba.net]
普通のマージソートを読んでるだけで別に酷くなくね?
エラーハンドリングしてないってことなら競プロではそれが常識だぞ
何を見て酷いと言ってるのか説明してくれ

715 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:33:06.65 ID:LIu803lba.net]
>>702
\dじゃなく%dのことかな?
そのコードの下にACが30個並んでるだろ?
これは用意された30通りのテストケースにおいて想定通りに動いたということなんだよね
つまりコードのせいではないよ

716 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:36:36.47 ID:q8NQ5dwmd.net]
改行が問題になるのは%cのときくらいで
%dのあと%dだから空白類文字は問題ないよ

717 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:42:55.52 ID:LIu803lba.net]
>>701
ちなみにこのコードを書いたのはオレンジコーダー
https://atcoder.jp/users/ygussany?contestType=algo

オレンジというのは一部上場企業でも一人もいないことが珍しくないレベルの高レベルプログラマを超える化け物レベルの超高レベルプログラマを超える頭おかしいレベルのプログラマ

718 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:47:51.25 ID:knNtAgEU0.net]
y[200001];とd[200001]がスタック壊してしまいます涙



719 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:54:14.03 ID:LIu803lba.net]
>>707
Linuxではメモリの許す限りスタックが使えるから

720 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 16:54:27.16 ID:ZPuEPm3M0.net]
>>707
ありがとうございます
それでした

721 名前:デフォルトの名無しさん mailto:sage [2022/12/01(木) 17:04:51.34 ID:IEkrCGic0.net]
おま環定期

722 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 21:55:28.56 ID:7byHd/K/d.net]
>>708
とはいえmallocにしたほうがいいんでない?

723 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 22:07:50.79 ID:RAGda7mP0.net]
VLAで足りることにmallocか

724 名前:デフォルトの名無しさん (US 0H31-fHn/) mailto:sage [2022/12/04(日) 22:16:11.60 ID:Yt2fANdLH.net]
>>712
C++ で見捨てられた VLA なんか使いたくないですね

725 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 22:29:52.59 ID:xXGWnQN3d.net]
>>712
VLAはC99で採用されたけどC11でオプション仕様に格下げされたよ

726 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 22:31:57.30 ID:JQ3spjvfM.net]
>>708
それってどこ情報なん?

727 名前:デフォルトの名無しさん [2022/12/04(日) 23:03:10.81 ID:UdvGlPZ+0.net]
Cで通信系いじりたいんやけどなにからすればええ?
まずはゲームとか作ってC言語に慣れた方がええんやろか
「無線 C言語」と調べてもコロナ社の本しか出てこん
本買った方がええんか?
右も左もわからん、どなたか教えてください!!!

728 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 23:04:19.10 ID:AOlAqVGT0.net]
まず何がやりたいのかはっきりさせろ
何もわからんぞ



729 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 23:09:42.46 ID:HgjSOVEG0.net]
通信系って、無線通信?
C言語には電波を飛ばす機能はないよ

730 名前:デフォルトの名無しさん [2022/12/04(日) 23:14:41.99 ID:UdvGlPZ+0.net]
ネット通信とか無線通信はC言語だとどっかで耳にしたからとりあえずやりたくなったんや
なんかいい通信系の入門サイトとかあれば教えてほしい

731 名前:デフォルトの名無しさん [2022/12/04(日) 23:17:10.93 ID:UdvGlPZ+0.net]
>>718
無線通信系に興味ある
電波飛ばす機械をC言語でなんかするんじゃないん?

732 名前:デフォルトの名無しさん [2022/12/04(日) 23:26:26.75 ID:MiJYA0Kr0.net]
通信をする方法が無線かどうかはハードウェアの問題。
更にOSやデバイスドライバやOSのシステムコールをどのように呼べば良いかを知る必要がある。
C言語の知識が必要になるとすると通常はここからだ。

そうではなくてハードウェアはあるがOSがなくI/Oポートを直接読み書きするようなプログラムを
作る必要がある場合はアセンブラかC言語で作ることになると思う(必ずしもそうである必要は
ないが)。その場合はOSのデバイスドライバを自作するような感じになる。

733 名前:デフォルトの名無しさん mailto:sage [2022/12/04(日) 23:27:41.55 ID:HgjSOVEG0.net]
有線にしろ無線にしろ、通信という以上は相手があって
その相手とルールの取り決めをしてからそのルールにしたがってやり取りする
だから最初に、誰と、どういう取り決めでデータのやり取りをするかを決めないといけない
インターネットもそういうルールをみんなで決めてやり取りをしている
とりあえずインターネットの通信を学んでみたらどうだろう
この掲示板に書き込みをしているのだから、その通信が可能だし、
その機種を使って試すところから始めると良い

734 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 00:30:23.98 ID:ddGzHpStd.net]
>>712
スタックの仕様は機種依存が激しいから可搬性を考えたらスタックは無限にあると考えないほうがいい
というかLinuxではデフォルト8MBみたいだけど

735 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 00:47:01.63 ID:ddGzHpStd.net]
というかスタックというのは一番効率の悪いメモリの使い方なので
本を片っ端から積み上げて下の方は取れなくなってしまうイメージ
大規模な配列はスタックに置かないほうがいいというのは基本では
断片化があるとはいえmallocのほうが効率的

736 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 00:55:05.00 ID:d/jwcHzh0.net]
一番上と、一番下でアクセスの速度は同じでしょう

737 名前:デフォルトの名無しさん [2022/12/05(月) 01:09:57.27 ID:rpvKYALB0.net]
スタックが上のデータに埋もれて下のデータが取り出しにくくなるなら、ヒープでも全く同じことが発生するはず。
適当なアナロジーで間違った理解をしている典型例だと思う。

738 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 01:14:21.69 ID:ZI2+JeHur.net]
デカいデータで最適化が効くことがあるのはグローバル変数



739 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 01:15:32.38 ID:m5vf/Aut0.net]
Cのローカル変数は、マシン語レベルではスタック領域に生成されるが
相対アドレシングで自由にアクセスするので問題ない

740 名前:デフォルトの名無しさん [2022/12/05(月) 01:21:11.87 ID:op7KwCv70.net]
領域の確保開放が上からしか出来ないだけで読み書きはどこでもできるもんな

741 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 06:17:33.64 ID:0xhTnbB50.net]
>>723
え、無限にあると考えることがあるの?
・・・あれか、マイクソソフトが吹聴してる例の有害なやつか

742 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 08:28:01.18 ID:d0zhDPVSa.net]
>>711
競プロだぞ

743 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 08:42:20.41 ID:AHxKL62Z0.net]
有限さん「おい、スタックが無限にあると考えられるとはどういうことだ?証明して見せろ!!」
ムゲンさん「わかりました。では無限なメモリを積んだコンピュータを用意してきてください。そしたら証明して見せます。」
有限さん「そんなことできるわけないだろ!」
ムゲンさん「ザンネン。じゃああなたのご希望に沿うことはできないですね。」

ボク「それってつまり、無限のスタックは存在しないってことなんじゃ?」

ムゲンさん「『無限なメモリを積んだコンピュータは存在しない』というのは悪魔の証明であって、存在しないと断言すること自体が不可能です。」

ボク「屏風の虎…一休さんかよ」

744 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 09:23:30.88 ID:0xhTnbB50.net]
観測可能な宇宙に原子が8e79個あり、
DDR4のセル電荷が2.4e-14クーロンとすると
メモリは6.7e73バイトまでしか作れない
∴ 無限のメモリは存在しない

745 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 09:27:43.41 ID:AHxKL62Z0.net]
観測不可能な宇宙領域がまだあるではないか
そこには無限の(ry

746 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 09:44:59.30 ID:BaBCvHVhM.net]
量子メモリであれば無限の状態を記憶できるか?

747 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 10:56:43.18 ID:ddGzHpStd.net]
>>725
速度の問題ではなく
用済みになっても開放できずにいつまでも抱え込んでいなければならないことが問題

748 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 11:14:13.11 ID:d/jwcHzh0.net]
スタック上の変数って、その関数内でしか用は無いのだから
関数が終了と同時二メモリーから消え去ります
抱え込むことはありません



749 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 11:22:51.84 ID:hYIKK9DOp.net]
児童変数の事?

750 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 11:23:28.04 ID:E9Ntil7Ed.net]
効率悪い実装してれば効率悪くなるだけの話やな
スタックは一時変数の効率的確保の極みなんだけど関数化を怠った結果そうなる

751 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 11:24:48.36 ID:hYIKK9DOp.net]
児童変数を関数の戻り値にするのは実体渡しだけにしておかないと痛い目に逢ったなぁ

752 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 11:28:42.22 ID:d/jwcHzh0.net]
>用済みになっても

と言うことだから、関数間の受け渡しは考慮しなくて良いでしょう

753 名前:デフォルトの名無しさん (ワッチョイ e2ad-4FAg) [2022/12/05(月) 18:42:27.81 ID:M2dfOAYW0.net]
自動変数用のスタックは本物のスタックポインタ無視して別に作っちゃってもできるな。
そういうコードを吐くコンパイラも作れるというだけのことではるが。
でもその方がリターンアドレスが詰まれている所に変数混ぜるより安全な感じはする。
特にC言語の場合は配列の範囲をオーバーしても平気でどんどん書き換えちゃって関数の終わりで明後日の方向にリターンなんてものも作れちゃうから。

754 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 18:46:56.29 ID:d/jwcHzh0.net]
ワープ航法w

755 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 19:26:38.80 ID:3chMJcRmp.net]
8ビット時代にゃスタックジャンプは普通にやってたなぁ

756 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 19:33:53.84 ID:XYzlQpP/M.net]
スタック保護
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/c905.html

757 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 20:04:47.35 ID:9YGPhFSH0.net]
>>742
> 自動変数用のスタックは本物のスタックポインタ無視して別に作っちゃってもできるな。
当たり前だろ、その本物とやらのスタックポインタもたないマシン(例えば汎用機)もあるんだし

> でもその方がリターンアドレスが詰まれている所に変数混ぜるより安全な感じはする。
暴走するか変なデータになるかの違いしかない
どっちがマシかは状況による

758 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 20:08:14.24 ID:AHxKL62Z0.net]
いや暴走のがマシなんて状況あるん?
変なデータは使用する時点でチェックすれば防げるけど



759 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 21:05:25.92 ID:9YGPhFSH0.net]
>>747
> いや暴走のがマシなんて状況あるん?
今時のプロセッサーなら暴走したら不当命令とか>>745のリンク先にあるデータ実行防止で止まる可能性が高い

> 変なデータは使用する時点でチェックすれば防げるけど
それが完全なら良いけど例えば金額が多少間違っててもチェックできないケースもあるだろ

760 名前:デフォルトの名無しさん mailto:sage [2022/12/05(月) 22:17:34.11 ID:d/jwcHzh0.net]
補助輪つき自転車みたいだ

761 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 00:15:19.77 ID:XVvWtcz/d.net]
>>737
抱えたまま他の関数を呼び出したり
あと再帰呼び出しとかスタックを利用する一番の利点とされてるけど?
問題なのは呼び出された関数がすでにスタックが残り少ないのを知る手段がなく
そこでクラッシュしても原因がわかりにくいという開発上のトラップだな
まあ大規模なソフト開発してみればわかるよ

762 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 00:17:55.95 ID:PYPomZFd0.net]
それはメモリー不足が何時起きるか分からないと言ってるのと同じ事ですが

763 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 00:44:18.64 ID:8IYUkFNt0.net]
スタックオーバーフローという
エラーメッセージがあるのでは?

764 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 00:44:54.36 ID:8IYUkFNt0.net]
スタックオーバーフローという
エラーメッセージがあるのでは?

765 名前:デフォルトの名無しさん [2022/12/06(火) 00:47:21.54 ID:qZ0a8ZvK0.net]
スタックオーバーフローという
エラーメッセージがあるのでは?

766 名前:デフォルトの名無しさん [2022/12/06(火) 00:47:27.32 ID:qZ0a8ZvK0.net]
スタックオーバーフローという
エラーメッセージがあるのでは?

767 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 00:48:27.88 ID:PYPomZFd0.net]
スタックオーバーフローは、大規模なソフト開発とはあまり関係ないデスね
大規模なソフト開発してて、スタックオーバーフローでプログラム落ちたら、
笑われると言うか、怒られるかも

768 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 01:09:59.63 ID:LDJX4o340.net]
スタック上に大領域確保するにしても
内部で余計な関数呼ばない結果だけ返す関数作って抱え込まない
深さを限定できない再帰呼び出しもありえないし



769 名前:デフォルトの名無しさん [2022/12/06(火) 03:07:59.72 ID:PbeCdWM30.net]
699 デフォルトの名無しさん (ワッチョイ 972d-zuBb) sage 2022/12/01(木) 15:02:39.09 ID:ZPuEPm3M0
ttps://atcoder.jp/contests/abc273/submissions/35667282
このコードを実行するとscanfで入力を待つはずなのですが即座に終了してしまいます
たまにそういうコードを見かけるのですが何が原因なのでしょうか
printfを入れても実行されないのでmainがスキップしているような。。

770 名前:デフォルトの名無しさん [2022/12/06(火) 03:09:09.32 ID:PbeCdWM30.net]
>>758
いまだにhを取るあたりがもう超絶無能

771 名前:デフォルトの名無しさん [2022/12/06(火) 03:10:27.42 ID:PbeCdWM30.net]
>>758
25年くらい前のネットの書き方だな

772 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 08:24:16.80 ID:zdZ3zkNx0.net]
Win98時代は1Mバイト程度の配列変数作っただけで動作がおかしくなってたな。
スタック増やせって言われてコンパイルオプション弄ったけど改善しなかった記憶・・・。

DOSからWinに来たときは64kバイト以上のメモリ確保さえ避けてた。

773 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 08:27:50.69 ID:63yxghiR0.net]
そりゃー8086のセグメント方式なんだから64k超えは問題ありまくりんぐでそ

774 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 11:20:14.67 ID:yvaEv+2ca.net]
>>761
> Win98時代は1Mバイト程度の配列変数作っただけで動作がおかしくなってたな。
それは今でも一緒だろ
Windows の既定のスタックサイズは1MBのままだぞ
https://learn.microsoft.com/ja-jp/windows/win32/procthread/thread-stack-size

775 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 11:30:06.24 ID:PYPomZFd0.net]
MS-DOSの頃は、メモリ1MB積んだPCってスゴイ豪華な印象だったな
搭載メモリーを使い切る様なプログラムを、オレは書けるんかって思ってた

776 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 12:01:21.10 ID:63yxghiR0.net]
I/Oバンク方式かEMSかって時代か

777 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 14:59:37.11 ID:iX2JPZR5d.net]
本当のメインメモリとして使えたのは640kBまでで
残りの384kBはバンクかEMSの増設メモリだった

778 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 19:43:39.61 ID:PYPomZFd0.net]
最初はハードウェアで実装してたけれど
そのうち仮想86モードだったかで、
特別なハードを追加せずにメモリアクセス出来る様になってたね



779 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 20:33:29.46 ID:zjGx1PLy0.net]
>>766
残りはハードウェアのIOやらROMやらVRAMなどだ
EMSウインドウはその開いている隙間アドレスにねじ込んだだけ

780 名前:デフォルトの名無しさん mailto:sage [2022/12/06(火) 21:49:14.42 ID:63yxghiR0.net]
>>767
あったねー、ソフトウエアEMS>ハードウエアEMSなんて珍現象

781 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 05:45:28.61 ID:QbuGAkRx0.net]
#include <stdio.h>
#include <time.h>

void
main(void)
{
time_t now, now2;

now = time(NULL);
now2 = time(NULL);
struct tm *tm1 = localtime(&now);
struct tm *tm2 = localtime(&now2);

tm2->tm_mday = 1;
tm2->tm_mon = 1;

printf("%d %d\n", tm1->tm_mday, tm1->tm_mon);
printf("%d %d\n", tm2->tm_mday, tm2->tm_mon);
}

782 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 05:46:27.95 ID:QbuGAkRx0.net]
tm2を変更するとtm1も同じ値になってしまいます。
回避方法を教えて下さい。

783 名前:泣gの名無しさん mailto:sage [2022/12/09(金) 05:47:05.17 ID:QbuGAkRx0.net]
OS:Linux Mint
コンパイラ:gcc です

784 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 06:15:54.45 ID:rdO0dbBS0.net]
https://linuxjm.osdn.jp/html/LDP_man-pages/man3/ctime.3.html
localtime_r()を使いましょう

struct tm *tm1 = localtime(&now);
こんな使い方をするって時点でlocaltime()が「何」を返すのか、察しましょう

785 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 06:58:19.07 ID:QbuGAkRx0.net]
>>773
サンクス、動いた

786 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 07:14:28.04 ID:aKtIUC7D0.net]
このへん、言っちゃなんだけどクソだね
なんでこんな変な設計にしたんだろう

787 名前:デフォルトの名無しさん [2022/12/09(金) 07:27:22.65 ID:G83XZmEL0.net]
ローカルで構造体を定義してそこへのポインタを返すとスタックから消えてデータが壊れますか?

788 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 07:54:25.65 ID:DDM/thjI0.net]
>>775
いちいち使う人に領域確保させる手間をかけさせたくなかったってことでしょ
マルチスレッドなんてない時代だし



789 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 07:57:34.07 ID:DDM/thjI0.net]
>>776
構造体に限らずローカル変数へのポインタを返すとポインタの指す先の内容は壊れる(かもしれない)

790 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 13:31:15.00 ID:RVIOSi06d.net]
未定義の動作という

791 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 15:26:27.10 ID:Z1cscK2ka.net]
>>775
strtok

792 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 15:41:02.97 ID:8zaQFmsV0.net]
何らかの要因でテンパって煮詰まってコーディングしてて
変なものができてしまうこと、皆さんも経験あるのでは

793 名前:はちみつ餃子 mailto:sage [2022/12/09(金) 17:25:23.52 ID:Qnrm7z6h0.net]
>>776
スタックから消えるというか、言語仕様的な用語でいうと生存期間が終了していることになる。
そんでオブジェクトを生存期間の外部で参照したときの動作は未定義なので何が起こるかわからん。
C でいう未定義ってのは「何が起きてもいい」なのでデータが壊れる (意味不明の値が読みだされる) だけでは済まないかもしれない。

794 名前:デフォルトの名無しさん mailto:sage [2022/12/09(金) 17:34:59.55 ID:i/ZE6Izl0.net]
恋と同じで、はかなく消える運命

795 名前:デフォルトの名無しさん [2022/12/10(土) 01:00:03.41 ID:ap6EnRqC0.net]
>>776
すぐ消えないことがあるので読めてしまうかも知れない。しかし何かをすると一瞬にして破壊されて終わるかも知れない。
あてにしてはいけない。

ていうかこの頃のコンパイラってそういうのは警告出したりエラー扱いにしない?

796 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:35:32.63 ID:0yWWcyiC0.net]
コンパイル時に常に摘出できるわけじゃないし

797 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 08:43:06.25 ID:VZKCrGXt0.net]
いやバグは睾丸みたいに摘出はできないだろ

798 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 11:08:12.32 ID:8LaJbp4o0.net]
warning C4172: ローカル変数またはテンポラリのアドレスを返します: hoge

VS2022



799 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 11:18:10.60 ID:W5v0KihFa.net]
>>787
https://learn.microsoft.com/ja-jp/cpp/error-messages/compiler-warnings/compiler-warning-level-1-c4172?view=msvc-170

800 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 11:34:37.41 ID:FHzDIuwr0.net]
そういうときはレジスタ変数のアドレスを返すようにコーディングしなさい

801 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 11:49:59.77 ID:n733SMJ50.net]
staticの出番は?

802 名前:デフォルトの名無しさん [2022/12/10(土) 12:13:19.32 ID:9jPqI4Xva.net]
そして>>773の仕様となるのであった…

803 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 12:55:16.29 ID:8LaJbp4o0.net]
int *fuga(void){
 register int i = 123;
 return &i;
}

error C2103: '&' レジスタ変数のアドレスを得ようとしました。

ふむ

804 名前:デフォルトの名無しさん [2022/12/10(土) 13:24:22.34 ID:HjLF/vvU0.net]
>>788
説明とコードが対応してる気がしない
どういうこと?

805 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 13:32:02.53 ID:GuAR5Ny/0.net]
>>348
レジスタに割り当てた変数には左辺値はないよ
だって、ハードウェアのレジスタだから

806 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 13:43:23.28 ID:VZKCrGXt0.net]
言いたいことはわかるけど日本語が変
左辺値はメモリアクセスを意味する式なので
レジスタに左辺値がないのではなく
記憶クラスがregisterの変数の識別子は左辺値ではない

807 名前:デフォルトの名無しさん [2022/12/10(土) 13:46:04.91 ID:HjLF/vvU0.net]
>>789への疑問やろ

808 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 14:05:33.41 ID:lr6mtoK80.net]
>>793
floatからdoubleへ変換したうえでその参照を返してる
パッと見分かり辛くて人間の認知への挑戦かと思うなw



809 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT) mailto:sage [2022/12/10(土) 15:12:06.94 ID:brInbnm70.net]
>>792
register 指定が付いたらアドレスを取る操作自体が出来なくなるように制限されてるよ。
配列を register 付きで宣言したらなにも出来なさ過ぎてワロタwwwというのはよくあるネタ。
(言語仕様的には配列 (の要素) へのアクセスもポインタ演算の構文等になってるから暗黙にアドレスを取る操作。)

>>794-795
左辺値であるかどうかと記憶クラスは関係ない。
必ずしもメモリにアクセスすることを意味しない。
register 宣言でアドレスを取れなくなるのは左辺値でなくなるからではなく
& のオペランドは register 付きで宣言されたものであってはならないという直接的な制約。
どこをどう見ても左辺値の定義自体には register 指定は関係しない。

更に C99 の 6.5.3.2 から単項 & の制約について抜粋

> The operand of the unary & operator shall be either a function designator, the result of a
> [] or unary * operator, or an lvalue that designates an object that is not a bit-field and is
> not declared with the register storage-class specifier.

JIS の日本語だとこうなってる。

> 単項&演算子のオペランドは,関数指示子,[]演算子若しくは単項*演算子の結果,又は左辺値でな
> ければならない。左辺値の場合,ビットフィールドでもなく,register記憶域クラス指定子付きで宣言
> されてもいないオブジェクトを指し示さなければならない。

左辺値のときは register 指定されていてはいけないというのは逆に言えば register 指定されている左辺値というものも存在することを示唆する。

810 名前:デフォルトの名無しさん (ワッチョイ 27c2-aipL) mailto:sage [2022/12/10(土) 15:19:28.45 ID:VZKCrGXt0.net]
> register 指定されている左辺値というものも存在することを示唆する。

具体例ある?

811 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT) mailto:sage [2022/12/10(土) 15:24:22.50 ID:brInbnm70.net]
>>799
具体例というか、 register 指定は左辺値か右辺値かの定義に無関係なので
左辺値なものは register 指定されていようがいまいが左辺値って話。

変数の宣言のときに register 指定を付けたら全て register 指定のついた左辺値だよ。

812 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 15:44:01.19 ID:VZKCrGXt0.net]
メモリにアクセスすることを意味するでしょ。

6.3.2.1 左辺値
左辺値が評価されたときにオブジェクトを指し示していなければ,動作は未定義とする。

3.14 オブジェクト(object) その内容によって,値を表現することができる実行環境中の記憶域の部分。
参考オブジェクトを参照する場合,オブジェクトは,特定の型をもっていると解釈してもよい(6.3.2.1 参照)。

なんでそういう決まりになっているのかを理解せずに条文の字面に書いてあることだけ表面的に言う人とは歯車が噛み合わないな。

813 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 15:50:02.57 ID:gyOVa4Se0.net]
>>792みたいなのはレジスタ変数じゃなくてもやっちゃダメだけどw

814 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 15:51:48.45 ID:zHuXawkZa.net]
昔の CPU はレジスタが少なくて
なんでもかんでも register 付けて宣言すると
CPU の持ってる実 register 数以上に宣言してしまうことが多い
では使い切った後の変数はどこに割り当てられる

815 名前:フか? []
[ここ壊れてます]

816 名前:はちみつ餃子 mailto:sage [2022/12/10(土) 16:30:03.16 ID:brInbnm70.net]
>>801
話を >>794 といっしょくたにしたのが誤りだった。 すまぬ。

> ハードウェアのレジスタだから
の続きで
> メモリアクセスを意味する式なので
をハードウェア的なメモリアクセスの意味で解釈してしまった。
むしろそんなん関係なく言語仕様上の意味で反論してたんだね。

(後から読む人のために補足すると C の言語仕様でいう実行環境は言語仕様で規定する仮想的な実行環境の
ことであって実際の機械語とどう対応づけるか規定されない。 どういう機械語が生成されるかは
言語の意味の根拠にならないので言語仕様で再解釈しようとしたのが >>795 だと私は解釈した。)

が、言語仕様の解釈として

> registerの変数の識別子は左辺値ではない

の部分が誤っているということには変わりないよ。

817 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 21:03:51.14 ID:iVr3EzOTM.net]
レジスターにもアドレスを割り当てておいたら良かったかも

818 名前:デフォルトの名無しさん mailto:sage [2022/12/10(土) 22:47:45.19 ID:37vQL6PeM.net]
昔6800系CPUはメモリの固定番地をレジスターと同格に扱うダイレクトメモリアドレッシングで見かけのレジスタ数を増やしていた



819 名前:デフォルトの名無しさん (ワッチョイ 7f63-KKgq) mailto:sage [2022/12/10(土) 22:55:13.62 ID:FHzDIuwr0.net]
レジスタを指すポインタをインクリメントすると、別のレジスタの値を書き換えられる、とか

820 名前:デフォルトの名無しさん (ラクッペペ MM8f-JsS5) mailto:sage [2022/12/10(土) 22:59:08.86 ID:cw57tQlnM.net]
組込み用の8ビットCPUでも同じような機能があるものもある
ダイレクトアドレッシング、ダイレクトページアドレッシングなど殆どは8ビットアドレスのゼロページ目をレジスタと見做して
メモリ経由することなく直接ALUで演算を行なうことが出来る

821 名前:デフォルトの名無しさん (ワッチョイ 7f63-KKgq) mailto:sage [2022/12/10(土) 23:32:50.32 ID:FHzDIuwr0.net]
レジスター配列とかプログラムコードをレジスタに置くとか

822 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 03:20:22.27 ID:BIXjZcK80.net]
>>804
左辺値がメモリアクセスを意味するのに?

823 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 03:56:09.23 ID:ftKoc+Hh0.net]
>>810
言語仕様では抽象計算機での動作として記述される。 (C99 なら 5.1.2.3?を参照)
記憶域として書かれているものは抽象的な意味の上での記憶域であって、
実際のメモリにアクセスするかどうかはコンパイラの裁量。
register 指定は変数の意味に関与せず、抽象機械の動作の上ではごく普通に記憶域に割り当てられているのと同じ。
その上で register 指定は「可能な限り速いアクセスを期待する」というヒントであることと、アドレスが取れなくなるという制約が付く。

register 指定は抽象機械の上での記憶域をハードウェアのレジスタに割り当てるなどして高速化してくれたらうれしいなぁ (/ω・\)チラッ
という指定であって、言語の理屈の上ではアドレスを取れない以外の何の意味も持たない。

824 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 06:45:02.24 ID:BIXjZcK80.net]
抽象計算機の記憶域がメモリではないって?
もういい、あんたとは話にならん

825 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 06:47:07.10 ID:ftKoc+Hh0.net]
>>812
根本的には register 指定で左辺値でなくなったりはしないという話をしてるんで。

826 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 07:35:55.41 ID:BIXjZcK80.net]
その話の根拠に疑問を示したんだけど、例の屁理屈に逃げるんでもういい

827 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 08:06:06.44 ID:ftKoc+Hh0.net]
>>814
言語仕様でそうなっているという以外に根拠が必要か?

828 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 08:12:25.56 ID:ftKoc+Hh0.net]
clang で抽象構文木を見る機能があったわ。
lvalue ってなってるだろ。

https://wandbox.org/permlink/j4csi19c5wVPE8ff



829 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 08:25:20.92 ID:BIXjZcK80.net]
>>815
しつこい

830 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 09:45:19.90 ID:B9k8N7vL0.net]
>>805
そういうプロセッサーはあるよ(ディスコンしてるけど)
https://i.imgur.com/Lqs3ejR.jpg
Z80 の裏レジスタは裏側のレジスタを直接触れなくてモヤモヤしたけどこいつは他のバンクのレジスタも直接さわれるからちょっと便利
PCとかもメモリー空間に見えてるプロセッサーもあったような気がするけど具体的なプロセッサー名を思い出せない

>>806
それはちょっと話が違う
単にアドレッシングモードとしてゼロページやダイレクトページが短いコードで扱えると言うだけのことでメモリーはあくまでもメモリー
例えば6800はPSH AでAレジスタをスタックにプッシュ出来るけどゼロページの内容を直接

831 名前:プッシュ出来るわけじゃない
6502 のインダイレクト・インデックストYぐらいの機能ならまあベースレジスタをメモリー上に置けるとは言えるけど
[]
[ここ壊れてます]

832 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 09:47:13.53 ID:B9k8N7vL0.net]
>>817
しつこいのは君かと
そもそも左辺値なんて言語仕様で定義されてるんだから仕様書で反論できない時点でお前の負け

833 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 10:26:09.32 ID:2yXQoOg9d.net]
IDコロコロ

834 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 10:45:16.87 ID:ftKoc+Hh0.net]
>>819
べつに勝ち負けを競っているわけじゃない。
根拠 (この場合は言語仕様) に基づく解釈の妥当性がそれで変わることはないので納得しない誰かがいても不都合もない。
5ch に書き込むのはただの暇つぶしだ。
どうせほかに話題もないんだからしつこくてもいいんじゃね。
反応するかどうかは知らんけど。

835 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 11:25:34.59 ID:RuZtb54i0.net]
>>821
そういうレスは流石にしつこいわ

836 名前:デフォルトの名無しさん (ワッチョイ 87bb-3TNT) mailto:sage [2022/12/11(日) 15:02:48.86 ID:51+9+dkC0.net]
ブレークブレークw

837 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 15:25:03.37 ID:jc+ZhrAU0.net]
みんな仲良くしなよ

838 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 17:37:29.66 ID:kiLLcra70.net]
ポインタは卒業した。コンパイラあるんだから、ググるより書いて結果を見たほうが早いぞ。
何十回も繰り返せばわかるはず。



839 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 17:42:03.60 ID:kiLLcra70.net]
亀レスだが機械語を知らないと、いい高級言語は書けない、ってのはわからん。
機械語と高級言語は別物だろう。

機械語を簡単に理解できる知能水準の人は、高級言語を新しく学習したときも
たやすく理解できる、

というのが実態なのに、ネットでは背びれ尾ひれついて、「ハードウェアを知らないと、〜」みたいな
論調が市民権を得ているな。

840 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 18:08:31.63 ID:3kpvLkL20.net]
CやC++はアセンブラレベルが理解出来ないとそもそも実装が無茶苦茶だったりするけど
ポインタとかが無いJavaとかはそこまでアセンブラレベルでどうのこうのってのは無いが
それでもコンピュータ的な知識が皆無な奴は論理演算を理解出来なかったりするし
ビットシフトみたいなことやってると、何でこんな書き方しているの?みたいな事言う奴出てくるからなぁw

841 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 18:39:34.39 ID:jc+ZhrAU0.net]
それがメモリー上二銅格納されてるか位は知っておいた方が良いよ
配列データをソートする時、どうやると効率的かがすぐ分かる

842 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 18:40:10.49 ID:jc+ZhrAU0.net]
メモリー上にどう格納

843 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 18:50:45.41 ID:DhbhWaSTM.net]
2の補数表現の知識は機械語の範疇だろう
スタックもそうだ
Cの仕様にスタックなんて言葉は出てこないからな
register指定も完全に機械語だ
タイマとか割り込みを扱う場合は機械語の知識も必要だな
setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
要するに機械語の知識は必要だ

844 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 19:18:24.83 ID:ftKoc+Hh0.net]
>>825
ポインタ演算は未定義動作を簡単に引き起こせてしまうので
十分に理解できてない状態で実際に動作させてみるというのはあまりあてにならない。
ある程度は理解した上で実際にやってみたら納得しやすいってことならわかるけど。

845 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 19:19:01.91 ID:HcYuyEaDa.net]
何十年前の話題を蒸し返してるのか知らんけど今のコンパイラは賢いからregisterとか使う必要ないぞ
むしろ人間が余計な指示を出すことで効率が悪くなる可能性すらあるからハードウェアの知識が云々とかいう老害理論はパイプラインとかキャッシュとかを全て把握してから言ってくれ
君たちの時代は終わったんだよ

846 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 19:29:49.83 ID:vn3Pz69o0.net]
register なんてあてにならんもん、使ってる奴いなかったと思うよ
本当に速くしたい所は、それこそインラインアセンブラ使ったり
アセンブルしたルーチン呼んでたし

847 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 19:33:50.07 ID:HcYuyEaDa.net]
>>833
コンパイラが本当に愚直な時は最適化無しで使ってたぞ

848 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 19:38:52.22 ID:vn3Pz69o0.net]
それは失礼した



849 名前:はちみつ餃子 mailto:sage [2022/12/11(日) 19:39:00.70 ID:ftKoc+Hh0.net]
少なくとも gcc とか clang くらいのモダンな処理系ではコンパイラの判断のほうが賢いわな。

低レイヤのコードだと人手で指定を付けたいときもあるかもしれんが
そういう分野ではどうせ処理系の拡張がなきゃどうにもならんので
register キーワード程度のあやふやなものひとつを言語仕様に入れてもあまり役に立たない。
C++ では register は削除された (機能は削除されたがキーワードとしては予約語のまま) わけだし、
C でもその内に削除されるんじゃないかな。

850 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 20:04:06.71 ID:8Gp9TgZBa.net]
register なんて要らんとか昔からずーっと言われてるけど
つけたらつけたで速くなったのその目で見たやつも居るでしょ?
gcc と gprof だけで頑張ってたとき確かに速くなったけど
だから register は有効有用使うべきとは言わないけどね

851 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 21:31:25.77 ID:OhnENqmv0.net]
>>830
>setjmp longjmpも何が保存されてるのか理解するには機械語の知識が必要だ
基本スタックポインタとプログラムカウンタだけだと思っていましたが、まあレジスタ全部と他何を保存してましたっけ?

852 名前:ハノン mailto:sage [2022/12/11(日) 22:26:47.72 ID:OhnENqmv0.net]
>>836
>C++ では register は削除された (機能は削除されたがキーワードとしては予約語のまま)
auto のように別の形で復活しそうですね
あと、asm はどうなりましたか?

853 名前:デフォルトの名無しさん mailto:sage [2022/12/11(日) 22:34:58.44 ID:IkAIpxjPM.net]
>>838
基本レジスタ全部だな(OSが使うレジスタは含まず)
他は無いはずだけど
ただ、戻り値にレジスタを使ってる場合は、そのレジスタは書き換えられてるだろう

854 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 06:30:06.98 ID:ychPXO7Q0.net]
メジャーどころのCPUは大抵、戻り値はレジスタだね

855 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 07:28:31.07 ID:v0et11DOM.net]
呼出規約
https://ja.wikipedia.org/wiki/%E5%91%BC%E5%87%BA%E8%A6%8F%E7%B4%84

856 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:27:00.05 ID:Y3syqvcfd.net]
static記憶クラス指定子の理解はできますが、いざプログラムを組んでみると、使い方がわかりません。

857 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:36:59.78 ID:jnrvptAKa.net]
>>841
CPU関係あるか?

858 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 14:37:08.19 ID:RmZ1ojDx0.net]
わかるものを使えばいいよ



859 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 15:05:24.79 ID:BWUj5Mhq0.net]
意訳
メジャーどころのCPU(に対応したCコンパイラ)は大抵、戻り値はレジスタだね

ではないかと
VCだとコンパイルオプションで変化した記憶がある

860 名前:はちみつ餃子 mailto:sage [2022/12/12(月) 16:42:43.35 ID:J7ftRWn10.net]
>>844
呼び出し規約 (を含む ABI) の策定はアーキテクチャを設計したところが主導するもんじゃないのかな。
CPU の特性に反した使い方を基本にされても困るだろうし。
ざっと調べた感じだとよく使われている System V ABI はインテルが議長の委員会で決める体制っぽい。

マイクロソフト (Windows) は引数の渡し方がちょっと違う規約でやってて
文句も出てない (出てないよね?) からそんなに強い強制力があるわけでもないんだろうけど、
CPU ごとに常識的な使い方というものはあるだろう。

861 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 16:59:57.60 ID:RmZ1ojDx0.net]
B言語でも戻り値はレジスタだったし

862 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 19:01:13.79 ID:xR631HBma.net]
>>847
マイクロソフトが作ってるハードはSurfaceとかだろ?

863 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 19:19:51.33 ID:m7KoqGgA0.net]
DOS時代にグラフィックライブラリとかをMASMでアセンブルして出来たobjファイルを
Cコンパイラで作ったobjとをリンクさせて
Cからアセンブラのルーチン呼び出したりしてたけど、
COBOLやFORTRANで作った関数をリンクさせて
Cで呼び出したりも出来るの?

864 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 19:31:09.72 ID:BWUj5Mhq0.net]
FORTRANなら呼べると思うが、COBOLは分からない

FORTRANやCOBOLからならCの関数は呼べたと思う

865 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 19:34:09.58 ID:2yJi4NkT0.net]
objファイルは流石に無理があるけどDLLや静的ライブラリでも作れば良いだけでは?
gfortranならexe以外にもDLL等が作成出来る

866 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 19:37:26.25 ID:BWUj5Mhq0.net]
受け渡しのデータ型も割と近くないかな?

867 名前:デフォルトの名無しさん (ワッチョイ a701-3npV) mailto:sage [2022/12/12(月) 19:39:34.73 ID:qCai2YYC0.net]
引数の積みかたやらスタックフレームの巻き戻しはどっちがやるか等の約束事が
シンプルに固定されてるDLLなら他所言語への持ち出しや持ち入れがやりやすいわね

868 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:17:18.59 ID:munrOkPw0.net]
>>828 まあ・・C言語を触るぐらいだから、一般的には大学とかのコンピュータサイエンス教科を
履修しているのが前提だろうから、そこはあえて省略したのですが・・

昔の高校生は頭がよかったけど。

今は「仕事でC言語を触らせてくれる身分」になるためには基本、情報系の大卒でしょうし・・



869 名前:デフォルトの名無しさん mailto:sage [2022/12/12(月) 20:18:59.06 ID:munrOkPw0.net]
>>828 配列のソートってメモリ意識しますかね。フラグメンテーションとか考えたこともないな・・。
単純に演算オーダー(log O^n とか・・)そんな感じである程度予測を立てて、あとは扱うデータ次第かと。

870 名前:はちみつ餃子 mailto:sage [2022/12/12(月) 21:58:34.14 ID:J7ftRWn10.net]
アルゴリズムのレベルではある程度の効率は事前に考えるけど
断片化とかキャッシュヒットとかはチューニングが必要な状況になるまで考えないな。
むしろ考慮したくなっても意識的に忘れるようにする。
いわゆる「早すぎる最適化」の一種だから。

当然ながら必要になったときには知っている必要はあるんだけどそんな機会は多くないよね。
普通の (アルゴリズムのレベルでは充分に配慮された) プログラムを書いて極端に効率が悪いようなら
メモリアロケータやキャッシュの設計のほうが悪い。
(そうは言っても目の前にあるものがそうなってるなら自分のほうが合わさないとしょうがないんだろうけどさ……)

871 名前:ハノン mailto:sage [2022/12/12(月) 22:18:23.35 ID:1Of7Vyge0.net]
>>847
win32api はなぜ PASCAL にしたんでしょうかね?

872 名前:ハノン mailto:sage [2022/12/12(月) 22:21:28.35 ID:1Of7Vyge0.net]
>>847
AMD64 は AMD が呼び出し規約まで決めちゃったけれども、普通は OS 屋が決めるものという気がしますけどね

873 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT) mailto:sage [2022/12/12(月) 23:05:07.66 ID:J7ftRWn10.net]
>>839
register というキーワードが将来に転用 (repurposing) 出来るようにというのは書かれている。
https://timsong-cpp.github.io/cppwp/n4659/diff.cpp14.dcl.dcl

auto という名前が新しい用途にぴったり (少なくとも不自然ではない) なので
それと同じくらいに register という名前が丁度良い場面というのは全く想像がつかないんだけど
思いもよらぬ形で上手いこと使われることはあるかもしれんね。

メンバ関数の宣言のときの default とか delete とかも考えたやつは天才じゃん……と私は思ったよ。

874 名前:デフォルトの名無しさん (ワッチョイ 7f63-KKgq) mailto:sage [2022/12/12(月) 23:08:20.90 ID:BWUj5Mhq0.net]
switch文のdefaultはたまに綴りを間違えてしまうw

875 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT) mailto:sage [2022/12/12(月) 23:14:51.65 ID:J7ftRWn10.net]
>>861
あれの問題点は綴りを間違えてもラベルという扱いになってしまってエラーとして検出されないところなんよね。
処理系やオプションによっては使われていないラベルとして警告が出たりはするんだけど。

876 名前:デフォルトの名無しさん (スフッ Sdff-d44j) mailto:sage [2022/12/12(月) 23:35:39.10 ID:zHXfNaq5d.net]
転用とかややこしいだけだから勘弁
自動でautoだからあんまり気にすんなよ、ちなc++ではこんな意味だよと、またややこしい補足が増えるだけ
むしろアンスコ付きの変な名前の方がかえってキーワードなんだなと分かりやすい、ソースは醜くなるけど、それは今更

877 名前:デフォルトの名無しさん (ワッチョイ 7fcf-FUlb) mailto:sage [2022/12/13(火) 00:08:19.11 ID:HbzfEbfW0.net]
auto も B言語の名残りだか後方互換だかで、
Bではデータ型がなくて、変数=整数が文脈により、ポインタとしても使われた
その storage classesとして、automatic, external, internal の3種類があった

main() {
extrn putchar, n, v;
auto i, c, col, a;
(略)
putchar('*n*n');
}

v[2000];
n 2000;

という風に auto で変数を宣言していた

878 名前:デフォルトの名無しさん (スフッ Sdff-d44j) mailto:sage [2022/12/13(火) 00:29:54.37 ID:+JwZZYrvd.net]
他に触る言語で明示的にauto宣言するのはbcかな、オモチャみたいなもんでPOSIXも有名無実で仕様なんぞ無いに等しいが

ポインタは明示的に触らないけど、エミュる時は配列の添字にauto変数(整数)突っ込むからむしろCよりBっぽい



879 名前:デフォルトの名無しさん (ワッチョイ 7f63-KKgq) mailto:sage [2022/12/13(火) 00:36:12.95 ID:FXPyPtyo0.net]
可変長で必要に応じて伸び縮みする配列とか、
桁数制限無しの整数型や計算誤差のない実数型とか

誰か作って(人任せ)

880 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 06:01:01.43 ID:d0KqwuA/0.net]
> 桁数制限無しの整数型

つGMP

881 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 07:11:07.69 ID:ZjPntofYa.net]
>>858
当時流行ってたからだろ

882 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 07:11:26.57 ID:4+XH+KhI0.net]
>>866
>桁数制限無しの整数型
https://mevius.5ch.net/test/read.cgi/tech/1434079972/84

883 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 13:48:16.74 ID:aee1RRAhM.net]
計算誤差の無い実数型って不可能だけどなw
decimalを使うと2進数は10進数の浮動小数点数を正確に表現出来ない問題を解消できる
ratio(分数)を使うと、1/3とかをそのまま保持出来るから誤差が出ない
ちなみに、Common Lispは分数を凄い簡単に扱えるしbignumも使える
Cでもそうなって欲しいもんだ

884 名前:デフォルトの名無しさん mailto:sage [2022/12/13(火) 13:59:48.87 ID:7PNjtjtua.net]
なぜ分数や多倍長整数が必要な案件にCなんかを使うのか

885 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 12:00:46.68 ID:erx97Ujd0.net]
虚数や複素数も扱えてたよね
あまり使い道はないかも知れないが

886 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 13:40:07.30 ID:XaqmHtNn0.net]
区間を分割して評価、終了判定がintegerpで判定とか細かい所で色々楽はできるだろう
単にスケールしても済むし、何回もやるなら任意精度でない有理型くらい構造体とgcdさえ書ければ誰でも書けるだろ

用途が違うし別にclは推さんが、標準の一つであるcltl2はあらゆるプログラマに貴重な書
浮動小数点演算に関しても複素関数の豊富なプロット載せて定義やブランチカット選びの良し悪しにかなりページ割いて、その図の生成に使ったpsコード生成コードも載ってる

つーか>>866はbcって言って欲しいだけでしょ、おまえら釣られすぎ

887 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 14:04:41.21 ID:XaqmHtNn0.net]
<cmath.h>徹底解剖みたいな文献って無いんだろうか

888 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 14:17:47.17 ID:XaqmHtNn0.net]
complex.hだった
最近触り始めたpythonでcmathだから素で間違えた
んでc++はmath.hが<cmath>と…



889 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-3TNT) mailto:sage [2022/12/14(水) 16:18:53.52 ID:YAu9ihh40.net]
math.h と cmath とは事情がややこしいので単に名前が変わっただけとは思わないほうがいい。
math.h の関数は多相化されてなくてマクロで多相化された版は tgmath.h にある。
cmath の多相化にはテンプレートが使われている。

890 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 19:29:35.78 ID:XaqmHtNn0.net]
Cのtgmathの方が(実装的な意味で)エグいよね
よくマクロの真髄みたいに色んな実装が紹介されるし、ちゃんと動いてるんだろうけど
ちょっと訳がわからないものは避けたい…

_Genericでスッキリ書けたりしないのだろうか

891 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 20:13:04.33 ID:h6lYzG45d.net]
ヘッダに直書きされてるから目につく機会が多いだけで、内部的にやっても同じロジックが隠れるだけか
気にし出せばきりがないようにも思う

892 名前:デフォルトの名無しさん mailto:sage [2022/12/14(水) 20:45:14.60 ID:QXbvEgmH0.net]
>>874
<ccmath>?

893 名前:はちみつ餃子 mailto:sage [2022/12/15(木) 14:40:26.12 ID:xFKc8Du50.net]
>>877
_Generic で素直に分岐すれば問題なくかけるよ。
tgmath.h が規格に入ったとき (C99) は規格の範囲内でやる方法は無かったので
処理系の拡張を使ったり新たな拡張を作ったりしてなんとかなったのだがやっぱりそれは
あかんやろと思ったのか C11 で _Generic を入れることになった。

ただ、処理系は C99 に厳密なモードを持つことがあるからそのモードで動かしたときに
ヘッダ内の _Generic についていちいち警告なりエラーなりが出るのもよろしくないし、
#ifdef で分けるのも二度手間だし、
旧来通りの実装で残すのはそれなりに合理的なんだと思う。

ありがたいことに普通に使う分には標準ヘッダの実体を気にする必要はないのだから忘れておくのが幸せだろう。

894 名前:デフォルトの名無しさん [2022/12/21(水) 10:08:23.47 ID:537DsEmx0.net]
// エラーを報告するための関数
// printfと同じ引数を取る
void error(char *fmt, ...) {
va_list ap;
va_start(ap, fmt);
vfprintf(stderr, fmt, ap);
fprintf(stderr, "\n");
exit(1);
}
これってprintfをerrorに変えただけって認識でok

895 名前:デフォルトの名無しさん [2022/12/21(水) 10:08:47.18 ID:537DsEmx0.net]
すまん誤爆した

896 名前:デフォルトの名無しさん [2022/12/21(水) 10:11:35.91 ID:537DsEmx0.net]
これってprintfをerrorに変えただけって認識でok?
error("引数の個数が正しくありません");と
fprintf(stderr, "引数の個数が正しくありません\n");
の違いを誰か教えてくれ

897 名前:はちみつ餃子 mailto:sage [2022/12/21(水) 10:21:03.43 ID:6CmfCawf0.net]
>>881-883
その認識でいいけどそれに加えて最後に exit で終わっているから
復旧不可能なエラーを報告するための関数なんだろ。

898 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 10:21:33.71 ID:LOXcnIHB0.net]
呼び出したら、死ぬ?



899 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 10:31:04.10 ID:Fs8T+fBed.net]
そのerrorならexit以外そうじゃね
perror(msg)はもう少し賢くて
fprintf(stderror, "%s: %s\n", msg, strerror(errno))
相当(by k&r2e)

900 名前:デフォルトの名無しさん [2022/12/21(水) 10:34:02.36 ID:537DsEmx0.net]
>>884
こんな時間にありがとう、助かる。
fprintf(stderr, "引数の個数が正しくありません\n");と同じってことやな
これにexitを加えて関数にしたのがerrorってことやね
わざわざerror関数にする必要性がわからんかったから助かったわ

901 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 10:37:12.34 ID:LOXcnIHB0.net]
私なら、error()を呼び出した側でexit()呼ぶなあ

902 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 10:39:53.43 ID:Fs8T+fBed.net]
ステータス選べるしな
わざわざexitに渡すステータス引数を拵えるくらいならexit読んだ方が早い

903 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 10:51:42.39 ID:Fs8T+fBed.net]
>>881
あ、地味にfprintf(stderr, "\n")でフラッシュしてるのに気付いた
あるいはfmtへの\n付け忘れ防止配慮か
基本stderrはこまめにフラッシュされるものと思ってるけど、fflushや"\n"で念を入れても損は無いな

904 名前:はちみつ餃子 mailto:sage [2022/12/21(水) 11:33:17.33 ID:6CmfCawf0.net]
言語仕様では exit で終了とか main の終端に到達した場合に全てのオープンされているファイルはクローズする
(そのときに全ての出力ストリームをフラッシュする) というのは保証してる。

エラーが起きている状況でどこまで信用できるかよくわからんから念押ししても損はないだろうけど。

905 名前:デフォルトの名無しさん [2022/12/21(水) 15:19:19.23 ID:537DsEmx0.net]
codepad.org/noY0x7K2
これの70行目と79行目の*ってただただ関数でポインタを扱うよってだけ?
なんか関数ポインタと似ててどうなんやって思った
int (*func1)(char*, int);

906 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 15:23:54.32 ID:WXW0EqS+d.net]
なんか質問者はexit呼ばないんだったら関数化しないでええやろって思ってそうで怖いな
設計方針次第でもあるが心配になるな

907 名前:デフォルトの名無しさん [2022/12/21(水) 15:35:25.72 ID:537DsEmx0.net]
>>893
今学習段階だからかなりの無知なんや、すまん

908 名前:デフォルトの名無しさん [2022/12/21(水) 15:51:20.06 ID:537DsEmx0.net]
あと上のURLのプログラムのcallocではメモリ解放してないけど大丈夫なのか?



909 名前:はちみつ餃子 mailto:sage [2022/12/21(水) 15:56:02.50 ID:6CmfCawf0.net]
>>892
返却値の型が Token* であるという意味。
でも文法的には * は宣言子に含まれていて Token の側じゃなく関数名がある側のグループなんよ。
だから右側に寄せて書く習慣になってる。
C の宣言の文法が無茶苦茶なのはイマサラな話なので……。

可変長引数の扱いも低レイヤの事情が見え隠れするような古の設計なので
歴史的事情を知らんとわけわからんのもしょうがないとは思う。

910 名前:デフォルトの名無しさん (ワッチョイ 7e02-evpg) mailto:sage [2022/12/21(水) 16:08:16.37 ID:5pWmYDMC0.net]
一貫性が大事って意味ならそう思う、特にdiagnosticなエラー(最後まで残る)は

俺は手入力で適当なエラーメッセージ書くのは極力控えてる、例えば数学関数書いてるなら
errno = EDOM;
perror(__func__);
→my_func: Argument to the math function out of domain.
的な
手続き的なルーチン(main)なら__FILE__/__LINE__とかで

用意されてるシンボル定数で意味論が合うなら活用すべき

EDOMなんかは好きに使っていいけど、システム、IO関連のエラーは意味が直感的でなかったり、規約に厳密に従わないとerrno見るcallerが騙されたりでバグの素なので、ちゃんとマニュアル参照のこと

911 名前:デフォルトの名無しさん (ワッチョイ 2a04-e5AJ) [2022/12/21(水) 16:09:52.42 ID:537DsEmx0.net]
>>896
こりゃかなわん。
基礎から出直してくる

912 名前:デフォルトの名無しさん (ワッチョイ 7e02-evpg) mailto:sage [2022/12/21(水) 16:10:45.37 ID:5pWmYDMC0.net]
ああ、当たり前だけどerrnoを上書きする前に気付いてないフラグ立ってないかif(!errno)チェックは忘れずに
割と立ってる事がある()

913 名前:デフォルトの名無しさん (スップ Sd8a-UQjj) mailto:sage [2022/12/21(水) 16:16:43.94 ID:WXW0EqS+d.net]
>>895
勿論使い終わったら解放する必要があるので解放関数を用意してあげよう

914 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 17:55:00.19 ID:j8NGwdcp0.net]
>>895
exit() したら解放されるからいいんじゃん

って言う層が一定数いる

915 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 18:13:15.89 ID:3kYobt3Gd.net]
今、息してるのか?

916 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 18:21:41.76 ID:LOXcnIHB0.net]
一日一回再起動すれば大丈夫

917 名前:デフォルトの名無しさん mailto:sage [2022/12/21(水) 21:42:34.64 ID:MxQdxJ6G0.net]
再起動なんてちまちましたことやってられるかい
電源ぶっこ抜いて入れ直すんだよ、それか蹴れば直る

918 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 11:43:33.39 ID:kpFE4WK60.net]
アプリ(強制)終了後に使ったファイル削除→このファイルは使用中です。


OSで保証されてないならアプリ側でやるしか無いじゃん。



919 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 13:27:28.75 ID:LbsYIb+eM.net]
誰かがこのPCを使っている

920 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 13:35:11.18 ID:KHPfY9lXd.net]
LANなら充分にあり得ることだな

921 名前:デフォルトの名無しさん (ワッチョイ 9710-Hnc0) mailto:sage [2022/12/22(木) 19:42:13.17 ID:/Ar1RYH70.net]
プロセス終了に関しちゃ今時のOSでハンドル握りっぱなしにはならんでしょ

922 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 20:28:13.17 ID:Q5govio9d.net]
/* 文字列を逆順にして返す関数 */
#include <stdio.h>
#include <string.h>
void reverse(char *ss);
int main(void)
{
  char tt[]= "programing game"; 

reverse(tt);
printf("tt=%s\n",tt);
return 0;
}
void reverse(char *ss)
{
int wk,pos1=0,pos2;
pos2=strlen(ss)-1;
while (pos1<pos2) {
wk=*(ss+pos1)
*(ss+pos1)=*(ss+pos2);
*(ss+pos2)=wk;
++pos1;
--pos2;
}

}
このプログラム、gccだとコンパイル出来ますが、clangだと以下のエラーになります。なぜでしょうか?
~/CCR/UserFiles/sample26.c:22:3: error:
invalid operands to binary
expression ('int' and 'char *')
*(ss+pos1)=*(ss+pos2);
^~~~~~~~~~
1 error generated

923 名前:はちみつ餃子 mailto:sage [2022/12/22(木) 20:40:06.89 ID:KT1tc7ko0.net]
>>909
wk=*(ss+pos1) の後にセミコロンが抜けてる。

924 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 20:43:53.45 ID:Q5govio9d.net]
ありがとうございます。コピペミスでした。

925 名前:はちみつ餃子 mailto:sage [2022/12/22(木) 21:11:31.21 ID:KT1tc7ko0.net]
事例としては面白いよ。
セミコロンが抜けても一応は式の形式として成立するから
型が合わないというところがエラーとして報告されちゃうんだな。

926 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 22:10:59.69 ID:dL3lthyL0.net]
昔のコンパイラならエラーなしで通してだろうな

927 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 22:43:34.75 ID:K5vPIqXq0.net]
ナウいヤングな文字列の掛け算はサポート外なんだわ
strcatで頑張れ

928 名前:デフォルトの名無しさん mailto:sage [2022/12/22(木) 23:40:21.52 ID:bege0WAi0.net]
昔のコンパイラだと=*が乗算代入だったんだけどな



929 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 08:27:13.83 ID:msM3WKDD0.net]
exit on free 論争か・・・ そういう論争があったというのは知っているが
どっちに帰着したのか知らない

930 名前:デフォルトの名無しさん mailto:sage [2022/12/23(金) 08:52:05.54 ID:FPNxo7old.net]
RAIIでexitするやついたら匙投げる

931 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 17:52:35.28 ID:aYmW2hx40.net]
プロセス終了を検知してOSで良きに測って欲しいよね

932 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 20:25:27.94 ID:xbH5VpiM0.net]
>>917
膨大なリストなんかはいちいち解放しないで exit( ) でヒープごと解放する方が効率的なんて言う奴までいたんだよ...

933 名前:デフォルトの名無しさん mailto:sage [2022/12/24(土) 21:34:16.33 ID:aYmW2hx40.net]
いっそプログラム開始時に、
ドーンとでっかくメモリ確保して
自前でチマチマ割り当てて、
終了時にドーンと解放で良い気もする

934 名前:はちみつ餃子 mailto:sage [2022/12/25(日) 00:15:12.94 ID:8blj/qJt0.net]
そういう戦略をとっている有名なプログラムもある。
確保したメモリが結局はプログラムの最後までほとんど使用されっぱなしだということがわかっているなら
ちまちま管理

935 名前:しなくても終了と同時に全部が回収されることをあてにしても総合的なメモリ使用量は変わらない
(むしろ free のコスト分だけ節約できる) という考えをすることはあって、
リンカの LLD や Mold がそういう戦略をとっていたはず。

http サーバの h2o はセッション単位でドカンとメモリの確保と解放をしてる。

つってもプログラム全体のメモリについて見通しが立てられるということと
実行環境の事情を把握してるからそういう戦略を取れるのであって、
普通は小さなモジュールに分割するし、モジュール単位でメモリ管理に矛盾がないように設計するので
結果的にチマチマした確保と解放になる。

そこそこの規模になるとプログラムを分割せずに把握するのは大変なので凡人は小さな単位で
確保と解放をするように設計するのはしょうがないよ。
[]
[ここ壊れてます]

936 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 07:20:21.70 ID:vLPFsJBC0.net]
>>921
> 結果的にチマチマした確保と解放になる。
解放が必要なものまで>>920みたいなことしちゃダメだろ
リンカーのシンボル表みたいなのは処理中は追加オンリーで処理終了後に解放することになるから一気に解放が有効なわけで

937 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 08:37:13.23 ID:AjsJE3fQ0.net]
つまりメモリプールでしょ。昔からある戦略だ

938 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 08:49:15.44 ID:gsvPl1RZ0.net]
DOS時代の拡張子COMアプリは起動時に空いてるコンベンショナルメモリ全部(PC98ならVRAMの前まで)COMアプリに割り当てられるんだっけ。



939 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 08:59:08.85 ID:CcfMXDnS0.net]
やればできるよ
EXEとの違いはリロケーションテーブルがないってだけ
コード次第で出来んことは無いィィィ

940 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 09:03:42.49 ID:vLPFsJBC0.net]
>>923
考え方は近いがもっと特化した手法
なのでシンボル表みたいなものにしか適用できない

941 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 10:31:57.80 ID:NJW41kMTa.net]
空いてるコンベンショナルメモリ全部というと大きなメモリが割り当てられるように聞こえるけどコンベンショナルメモリは640キロバイトしかないからな
逆に小細工しないと拡張メモリ(exeで使える大きなメモリ)が使えないと言った方が正しい

942 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 11:06:28.12 ID:CcfMXDnS0.net]
リアルモードの「拡張メモリ」ならCOMでもEXEでも同じことだぞ
プロテクトモード用の「EXE」はまた別物だ
バイモーダルEXEなんてのもあったね

943 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 13:44:18.05 ID:pgi9BcgIM.net]
ラージモデルのexe、拡張子をcomに書き換えても動くのは秘密です。

944 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 15:44:19.19 ID:mgz0dfZnM.net]
exeとcomってファイル先頭のエントリーアドレスの解釈が違ってなかったっけ?
拡張子だけ変更しても暴走したような気がする

945 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 16:11:57.52 ID:zQEQkIp7H.net]
>>924
自力でシステムコール(あるいは farmalloc()) と far ポインタを扱うんだったら出来る

946 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 16:49:45.05 ID:FlWfyDt20.net]
OSは、EXEかCOMかの判定をファイル先頭2バイトで行うので
拡張子は同名実行ファイルの優先度以外には影響ありません

947 名前:デフォルトの名無しさん [2022/12/25(日) 18:17:37.99 ID:4l2e8mxL0.net]
何のOSの話なんだよ?

948 名前:デフォルトの名無しさん mailto:sage [2022/12/25(日) 22:36:13.77 ID:R9zYhJab0.net]
>>933
MS-DOS



949 名前:デフォルトの名無しさん (US 0Hd7-ij7E) mailto:sage [2022/12/25(日) 23:53:11.65 ID:3pvnVlsWH.net]
>>925
LSI-C試食版のコード64KB の制限はなんとかなりませんかね?

950 名前:デフォルトの名無しさん (ワッチョイ b363-dxp0) mailto:sage [2022/12/26(月) 00:03:12.26 ID:eX0Ff8H70.net]
試食版のコードで生成する実行プログラムを、動かす環境もってるの?

951 名前:デフォルトの名無しさん (US 0Hd7-ij7E) mailto:sage [2022/12/26(月) 01:36:38.31 ID:xk9EZjkPH.net]
>>936
t

952 名前:akeda-toshiya.my.coocan.jp/msdos/index.html []
[ここ壊れてます]

953 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 10:26:13.14 ID:eX0Ff8H70.net]
W32が動く環境があるなら、そこでネイティブに使えるコンパイラにした方が良くないかな?
試食版って事はそれを業務で使うわけではないんでしょ?

954 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 11:02:09.22 ID:+xP92Jxa0.net]
8086 の SBC とか使って趣味でなんか作ってるんじゃね
俺も会社でだけど 80186 ボードのために Visual C++ 1.52c をずっと持ってた

955 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 11:47:25.06 ID:Gtnl1i7F0.net]
C使用でも何も考えずにVC++無料版入れてるわ。
バージョンアップの度にプロジェクト作成項目に悩む・・・。

956 名前:デフォルトの名無しさん [2022/12/26(月) 11:49:12.88 ID:rbZigseYd.net]
関数のポインタの配列を返す関数の宣言を教えてくさい

957 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 12:21:30.32 ID:sWfTrmtka.net]
残念だなのび太
C言語は配列を返せないんだ

958 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 12:24:01.49 ID:XQluw9Ded.net]
>>935
試食って書いてあるの見えない?
そういう類いには意図的に制限かけてあるんだよ
有料の正規バージョンを買ってねって意味

PS3のlinux封じとは訳が違う
怒る人のいないやり方なので
脱獄は誰も手伝ってくれないよ



959 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 12:48:43.97 ID:gpJgKl24M.net]
森公一郎さん、亡くなっているんだよな

960 名前:デフォルトの名無しさん [2022/12/26(月) 12:49:38.27 ID:6bMfB0bxa.net]
>>942
返す関数は定義出来るだろ
確保した領域の生存が関数内のみかそうじゃないかで結果は変わるが

>>941
思ってるものを描いてみ?

961 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 12:54:26.08 ID:VH0Lg5Zw0.net]
まあ関数イテレータ的には使えるのか

int getNoTest1(int x, int y, int z){return x*100+y*10+z;}
int getNoTest2(int x, int y, int z){return x*200-y*20-z;}
int getNoTest3(int x, int y, int z){return x*1000-y*100+z;}
typedef int(*FuncType)(int, int, int);

FuncType *getFuncAddrArray(void){
 static FuncType fa[3];
 fa[0] = getNoTest1;
 fa[1] = getNoTest2;
 fa[2] = getNoTest3;
 return fa;
}

int main(int argc, char *argv[]){
 FuncType *funcAddr = getFuncAddrArray();
 for (int i = 0; i < 3; ++i){
  printf("%d\n", funcAddr[i](rand(), rand(), rand()));
 }
 return 0;
}

962 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 15:36:06.25 ID:tmqxSKGS0.net]
>>945
できねーよ
配列が第一級オブジェクトじゃない珍しい言語

963 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 16:49:38.00 ID:URVWGre6d.net]
void(*func(void)[2])(void);
できるとしたら、こうなるが

964 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 17:05:11.56 ID:0DsOmzGV0.net]
固定長配列を戻すなら struct を経由したくなるわ

965 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 17:05:36.17 ID:F5Lcb5Ke0.net]
const char *f() {return "関数のポインタの配列";}

966 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 17:32:34.93 ID:eX0Ff8H70.net]
一休さんは、やめよう

967 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 17:34:43.38 ID:0DsOmzGV0.net]
https://ideone.com/DiokCM
strust ひっぺがして 戻り値が配列となる宣言だとおこられた
FUNC_PTR_T getFuncs(void)[3];

968 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 18:26:36.88 ID:+xP92Jxa0.net]
>>949
てか struct で包めば配列も返せるよね



969 名前:デフォルトの名無しさん mailto:sage [2022/12/26(月) 18:41:08.47 ID:sEpxtj4KM.net]
関数へのポインタの配列の構造体?

970 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 00:19:48.06 ID:8jh3A4jF0.net]
>>944
近藤嘉雪 パーサ担当
森 公一郎 コードジェネレーター担当

近藤さんの本は20年くらい前本屋でよく見かけたな

971 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 01:28:35.56 ID:1kPfWYrSM.net]
配列も値型だったら一貫性が有っただろうな
でも、配列を丸ごとコピーするなんて普通しないから、利便性を優先したんだろう
それによって、ポインタと配列は似てるけど違いもあるみたいな、初学者泣かせな仕様が生まれてしまった

972 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 03:19:13.84 ID:lusjSahA0.net]
ベースアドレスが配列の初めの要素を指すCスタイルの配列には一貫性があるだろ、だから0-based indexを採用する蓋然性があるわけで

何らかのbookkeeping、サイズ、ストライドやランク情報等のメタデータをスカラで一緒に渡す明示的なもの、あるいはstructで包む、メンバに.flagを設けるのはdope arrayの再発明

一方、dope arrayをネイティブ採用する為には
ベースアドレス+0は配列要素ではなく、メタデータを指さねばならない
だから初めの配列要素はベースアドレス+1(いわゆる1-based index)であるべき、という蓋然性がある

最も邪悪な配列の設計はメタデータを持つにも関わらずC慣習にすり寄って来て0ベース採用のやつな、設計に何の一貫性も無い

アドレス計算はCスタイルの方がスッキリして好き、個人的にはだけど

973 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 03:42:16.62 ID:lusjSahA0.net]
array[0]がarrayの始めの要素を指す、という伝統を尊重しつつ整合的にメタデータを持たせる拡張をしたいなら、arrptr-1に持たせるって手もあるね

974 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 05:21:18.30 ID:nX/ozHbV0.net]
文字列はchar型の配列だし
文字列のコピーなんか、あらゆる言語で基本中の基本だ

975 名前:デフォルトの名無しさん (ワッチョイ 9d10-dxp0) mailto:sage [2022/12/27(火) 08:19:53.31 ID:yfz0bOFn0.net]
処理コスト軽減の為に配列自体ではなく配列の先頭ポインタでやり取りしましょう。

976 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:14:55.49 ID:FjfQte1M0.net]
配列が固定長なのは仕方がないと言うか、当然かなと思うが
文字列は、編集がもっと自在に出来た方がありがたかったな

977 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:19:00.19 ID:8jh3A4jF0.net]
>>960
同じことだぞ
式の中では配列はポインタそのものだ

978 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:32:56.50 ID:pT1qhH4d0.net]
sizeof演算子「いや俺区別してるし」



979 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:34:00.98 ID:2fUOYjFgd.net]
&演算子: いい加減なこと言ってもらっちゃ困るな

980 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:36:45.19 ID:2fUOYjFgd.net]
昔、こんなバカいたよ
printf("%d", sizeof "abc");
見ろ、文字列はポインタだ(キリッ

981 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 11:49:59.77 ID:8jh3A4jF0.net]
式の中の配列と書いたのが読めないバカが多すぎる

982 名前:デフォルトの名無しさん (アウアウウー Sa2f-aXTt) mailto:sage [2022/12/27(火) 12:20:51.00 ID:3AXDXHupa.net]
式がどういう意味かわかった上で他人をバカ扱いしてる?

983 名前:デフォルトの名無しさん (ワッチョイ 9769-jXNG) mailto:sage [2022/12/27(火) 12:21:02.33 ID:o7XCQITF0.net]
965なんかもあくまで式だよ

int a[100];
int *b;
(sizeof a) + (sizeof b); ←これも式であり、式の中に配列もポインタも居る

a++ 非合法
b++ 合法
これも式

984 名前:デフォルトの名無しさん (US 0Hd7-ij7E) mailto:sage [2022/12/27(火) 17:43:59.96 ID:x3eVxeWPH.net]
あの~
誰か excel マクロで動く cc を作ってくれませんか?
うちの会社、cygwin 禁止なんです、cygwin インストーラですら実行できないんです、すごく弱っています
コンパイラが手元にないと私は無力……

985 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 18:03:44.42 ID:/tVTIbQ7a.net]
VBA使えよ
安心しろお前は自分で思ってるほどCが得意じゃないから

986 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 18:19:46.78 ID:uvaA1liZd.net]
visual studioの稟議を上げられない社畜?

987 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 18:22:29.22 ID:FjfQte1M0.net]
C#のコンパイラなら、何もせずともWinのどっかにはいっているような気がした

988 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 19:41:50.61 ID:tBCD9SD30.net]
>>971
仕事に関係のない VS なんて認可されませんよ、べつにソフトウェアの人じゃないんだから

>>970
コンパイラが手元にないと、どうもやる気がでなくって…



989 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 19:42:45.86 ID:tBCD9SD30.net]
>>972
cs.exe なんて大っ嫌い

990 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 20:26:44.18 ID:pT1qhH4d0.net]
>仕事に関係のない VS なんて認可されませんよ

>誰か excel マクロで動く cc を作ってくれませんか?
仮に誰か作ってもインストール認可されないんじゃないの?
そういう環境だと読み取ったけど

991 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 20:30:03.68 ID:NnGcg72Bd.net]
>>973
勤務中にくだらねえことやってんじゃねえって上司に怒られるの?

992 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 20:31:33.55 ID:usWDFVvc0.net]
まあ仕事に関係ないって自分で言っちゃってるからなぁ

993 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 20:39:00.00 ID:FjfQte1M0.net]
じゃあ、無敵のシェルスクリプトだだだ・・・

994 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:26:37.16 ID:tBCD9SD30.net]
>>975
>仮に誰か作ってもインストール認可されないんじゃないの?
>そういう環境だと読み取ったけど
マクロはインストールするものじゃないから自由に使えるんですよ、インストール権限の必要なソフトはインストールできないってだけでして

>>976
そうはいっても、単一ディレクトリの全ファイルに対して、ファイル名の冒頭に連番を振るプログラムを 3 時間ほどでチョロっと書いて、業務に生かしているんですけどね
いちいち手作業でファイル名を変えるとかやってらんないでしょ?自分のために自分で書く分くらいは許容してほしいよね

995 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:29:39.01 ID:tBCD9SD30.net]
あと、巨大な csv ファイルを結合するプログラムも便利に使っていたんですけどね、大概の機械はデータを csv で吐いてくれますますからねえ

996 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:31:04.10 ID:usWDFVvc0.net]
>>979
屁理屈なら上司に言って怒られてこい
なぜまともなソフトがインストール不可なのにお前の作ったソフトなら大丈夫と思うんだ

997 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:35:10.73 ID:usWDFVvc0.net]
ファイル名の頭に連番打つとかPowerShellでもバッチでもVBAでもできるしそもそも打つ必要があるかどうかさえ怪しい

お前のやってることが本当にみんなにとっていいことなら業務効率化のためにコンパイラの申請を通すのは何も難しくない
拒否られてるところで気づけよマジで
職場に不和の種をまくんじゃねえ

998 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:35:56.95 ID:FjfQte1M0.net]
こう言うわがままは却下されて当然ではないか



999 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:43:18.14 ID:tBCD9SD30.net]
>>976
操作記録をいちいち記録されて、裏でこっそり査定に響く仕組みですよ、たぶん
ああ、こんなところでここまで書いちまったらもう私の給料は来年は半額になっちまいますねえ、当の昔に諦めてるけど

1000 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 22:58:37.89 ID:VvvSD8wK0.net]
>>982
power-shell はたぶん入っていないと思いますよ、あったら使うに決まってますもん
VBA はいちいち excel を起動してマクロを走らせて、ああ、もうめんどくさくって死にそう
実行ファイルワンクリックで、ピシッと全ファイルを改名したいだけですよ、そうすればさくさく錯綜するメールスレッドを管理できますからね
バッチファイルで改名?できるというのなら見せてくださいな?

>>981
業務効率改善のため自分のために自分で作り自分が使うだけのソフトと、多数の人が使う商用の売り物のソフトとを一緒にしないでくれる?

1001 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 23:03:13.50 ID:VvvSD8wK0.net]
>>983
そりゃ、業務そっちのけで得体の知れないプログラムを書いてばかり(星新一の短編にそんなのがありましたね…)だったら叱られますけど、ぱっぱと3時間で書いて後はノーメンテ、それで半年実用になっているんだから遊んでいるわけじゃないんですけど

1002 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 23:06:57.48 ID:VvvSD8wK0.net]
>>982
>業務効率化のためにコンパイラの申請を通すのは何も難しくない

難しいんですよ…
あらかじめ効用をきちんと提示しなければならないなんてめんどくさくってやってらんない、
作りたいソフトが具体的に念頭にあるわけではなく、将来的に使いたい可能性が発生する可能性があります、で稟議を通るわけがないでしょう?

1003 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 23:25:57.12 ID:FjfQte1M0.net]
マ板で相談してみたら?
ここは大分場違いになってきてる

1004 名前:デフォルトの名無しさん mailto:sage [2022/12/27(火) 23:34:33.01 ID:nX/ozHbV0.net]
ブログにでも書けばいいのでは

1005 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 00:05:29.63 ID:JeA8YDJe0.net]
>>988
(職業)マじゃないただの一般人なので、マ板はたぶん板違い

>>989
ブログみたいな上等な場所に書くことではなく、便所のチラ裏で愚痴るに相応しい話題だと私は思いますけどね

まあ、もうやめます

1006 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 01:06:31.58 ID:PyoNDBFu0.net]
別に職業プログラマでなくても良いんだよ

プログラム(ロジック)についての悩みならここで良いが
プルグラムを書こうとする人の悩みは、マ板の方が相応しい

1007 名前:デフォルトの名無しさん (テテンテンテン MM97-t1KK) mailto:sage [2022/12/28(水) 03:37:42.61 ID:+f6n+5TtM.net]
> バッチファイルで改名?
これが出来なきゃ何のためにバッチファイルが存在してんだよw
バッチやシェルスクリプトは、ファイルのコピーやリネームとか、ファイル関連の処理が簡単に出来る事が最大のメリットだ
兎に角グクれば山ほど出てくる

1008 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 05:55:41.03 ID:VGHawTJO0.net]
C



1009 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 05:56:03.28 ID:VGHawTJO0.net]


1010 名前:デフォルトの名無しさん mailto:sage [2022/12/28(水) 05:56:54.31 ID:VGHawTJO0.net]


1011 名前:デフォルトの名無しさん [2022/12/28(水) 05:57:50.13 ID:DPVYYyHtM.net]
C

1012 名前:デフォルトの名無しさん [2022/12/28(水) 05:58:53.46 ID:DPVYYyHtM.net]


1013 名前:デフォルトの名無しさん [2022/12/28(水) 05:59:41.77 ID:DPVYYyHtM.net]


1014 名前:デフォルトの名無しさん [2022/12/28(水) 06:00:17.27 ID:DPVYYyHtM.net]


1015 名前:デフォルトの名無しさん [2022/12/28(水) 06:00:51.24 ID:DPVYYyHtM.net]


1016 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 145日 6時間 28分 24秒

1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<263KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef