↑
次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 149
https://mevius.5ch.net/test/read.cgi/tech/1540731704/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 150
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウクー MM57-IE4z)
2019/02/06(水) 13:39:03.21ID:c4bnQMl3M487デフォルトの名無しさん (スププ Sdbf-5O6o)
2019/03/03(日) 10:46:47.10ID:3MaRmCtMd 少なくともC言語である限りは規格に反するんじゃ?
_Bool型は0に等しければ0、その他は1って明記されてる(C11の6.3.1.2)から2進数で10は0に等しくないように思うが
_Bool型は0に等しければ0、その他は1って明記されてる(C11の6.3.1.2)から2進数で10は0に等しくないように思うが
488デフォルトの名無しさん (ワッチョイ 9f01-dMaL)
2019/03/03(日) 11:22:47.67ID:EUJr/Yte0 >>486
ハーフアダーはキャリーとセットで話すべきものだからハーフアダー云々は頓珍漢過ぎる
ハーフアダーはキャリーとセットで話すべきものだからハーフアダー云々は頓珍漢過ぎる
489デフォルトの名無しさん (ワッチョイ d77b-vPGa)
2019/03/03(日) 11:25:33.68ID:HIAqsaOR0 Cの、ビット幅の狭い整数値は int に変換してから計算するってルールにより
true + true → (int)1 + (int)1 == (int)2 → true
という流れで true + true == true であることは納得してるんだ。
型が _Bool でも適用されるよね。勘違いなら訂正求む。
(今回の話とは直接関係ないけど、まるっきり無関係でもない余談)
ただ、これが例えば unsigned int の値を真偽値として扱う場合だと、
unsigned int a = UINT_MAX; // 真偽値としては真
unsigned int b = 1; // 真偽値としては真
a + b == UINT_MAX + 1 == (オーバーフローして)0 → 真偽値では偽!
という事態も起こりうるのでご注意。
true + true → (int)1 + (int)1 == (int)2 → true
という流れで true + true == true であることは納得してるんだ。
型が _Bool でも適用されるよね。勘違いなら訂正求む。
(今回の話とは直接関係ないけど、まるっきり無関係でもない余談)
ただ、これが例えば unsigned int の値を真偽値として扱う場合だと、
unsigned int a = UINT_MAX; // 真偽値としては真
unsigned int b = 1; // 真偽値としては真
a + b == UINT_MAX + 1 == (オーバーフローして)0 → 真偽値では偽!
という事態も起こりうるのでご注意。
490デフォルトの名無しさん (アウアウカー Sa6b-WzxR)
2019/03/03(日) 11:31:58.04ID:f6/fijs9a 加算てのは常に状態を変える操作なので、論理演算としてはXORの方が似てるんですよ。
もちろん単に似てるという話で、加算は禁止するくらいが正しいといえば正しい。trueとfalseを1と0に割り当てたせいで足し算できそうな気になってしまったのがよくない。
1ビット整数だと考えてもいいが、元々そんなもんないからsizeofも1以上にするしかないという。
構造体に入れたらビットフィールドと同じメモリのレイアウトになるんだろうか。実装としては。
もちろん単に似てるという話で、加算は禁止するくらいが正しいといえば正しい。trueとfalseを1と0に割り当てたせいで足し算できそうな気になってしまったのがよくない。
1ビット整数だと考えてもいいが、元々そんなもんないからsizeofも1以上にするしかないという。
構造体に入れたらビットフィールドと同じメモリのレイアウトになるんだろうか。実装としては。
491デフォルトの名無しさん (ワッチョイ 9fda-W5e4)
2019/03/03(日) 11:46:05.73ID:ojZ/TgF60 C言語の_Bool型(boolはただの別名)のtrueを1以外に割り当てるとC++との互換に問題が生じる
C++のbool型のtrueの内部表現は1
bool(論理型)をcharやintなど(整数型)にcastすると1が返される
C++では論理型同士での四則演算は不可能なので問題は生じないが論理型の存在しないC言語ではどうしようもない
trueを1に割り当てて妥協するしか無いと思う
C++のbool型のtrueの内部表現は1
bool(論理型)をcharやintなど(整数型)にcastすると1が返される
C++では論理型同士での四則演算は不可能なので問題は生じないが論理型の存在しないC言語ではどうしようもない
trueを1に割り当てて妥協するしか無いと思う
492デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/03(日) 20:59:55.81ID:7VSfwDmM0 >>444
おまえ除算器作ったことあるの?
おまえ除算器作ったことあるの?
>>444
>「実測しろ」って原則を無批判に(条件反射的に)振りかざしてるんじゃないの?
いいところを突きますね、そうそうその調子、いい感じですよ
百人一首の上の句と下の句をつなげる、みたいな思考力を使わない、言葉のオートマタを批判するのはすばらしい着目です、感心しました
>「実測しろ」って原則を無批判に(条件反射的に)振りかざしてるんじゃないの?
いいところを突きますね、そうそうその調子、いい感じですよ
百人一首の上の句と下の句をつなげる、みたいな思考力を使わない、言葉のオートマタを批判するのはすばらしい着目です、感心しました
>>492
作ったことはあります、最初 C でちょろちょろっと書いたのが、いつのまにか成長してまとまったものになりました、まだまだ改善は必要ですが
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
作ったことはあります、最初 C でちょろちょろっと書いたのが、いつのまにか成長してまとまったものになりました、まだまだ改善は必要ですが
https://mevius.5ch.net/test/read.cgi/tech/1434079972/51
495デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/04(月) 06:25:09.82ID:kNFhD2SD0496デフォルトの名無しさん (ワッチョイ 9fda-W5e4)
2019/03/04(月) 07:32:41.06ID:yZdj1rJq0 昔8bitマイコンの組込みシステム開発で、被除数が24bit長、除数が固定値(値は3)の除算処理が必要となったとき、
C言語の除算処理では実行時間が要求仕様を満足しなかったのでインラインアセンブラで書き下ろしたことがある
処理系そのものは16bit長までしか対応してなかったので、32bit長の汎用演算ライブラリ関数が付属してたのはいいけど
そのライブラリが遅くて使い物にならなかった
C言語の除算処理では実行時間が要求仕様を満足しなかったのでインラインアセンブラで書き下ろしたことがある
処理系そのものは16bit長までしか対応してなかったので、32bit長の汎用演算ライブラリ関数が付属してたのはいいけど
そのライブラリが遅くて使い物にならなかった
497デフォルトの名無しさん (アウアウウー Sa9b-mjQG)
2019/03/04(月) 09:27:34.36ID:uCsPZ+haa 昔bool型ってのを初めてみたときは、誰が使うんだよ気持ちわりーって思ったな。charで8個もフラグ取れるし、
flg & 04とかで好きな位置のビット取れるし、なんでわざわざtrue,falseと思ったもんだ。
flg & 04とかで好きな位置のビット取れるし、なんでわざわざtrue,falseと思ったもんだ。
498デフォルトの名無しさん (ワッチョイ 9fa5-JAd8)
2019/03/04(月) 09:33:39.42ID:7yhUbPfx0 貧民の発想だな
499デフォルトの名無しさん (ドコグロ MMcb-dMaL)
2019/03/04(月) 12:25:39.90ID:LMssFTDPM 貧民てか脳がアセンブラに侵されてる
Pascalから入った俺はintでBooleanの代用とかサボりすぎだろって思ったわ
Pascalから入った俺はintでBooleanの代用とかサボりすぎだろって思ったわ
500デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/04(月) 15:44:36.25ID:kNFhD2SD0 当初から予想された抵抗だ
Pascal教に対する宗教改革じゃけえの
Pascal教に対する宗教改革じゃけえの
501デフォルトの名無しさん (ワッチョイ bf02-wVf3)
2019/03/04(月) 16:53:38.87ID:TpCWsYE80 >>497
思い切り最適化されて最終的なコードがそうなれば誰も文句言わないんだろうけどな。
思い切り最適化されて最終的なコードがそうなれば誰も文句言わないんだろうけどな。
502はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-3oSp)
2019/03/04(月) 17:08:34.72ID:Cw9L4ZBc0 bool は真偽値を格納するのに充分であればいいんだから普通は 1 バイトだろっていうのも昔の話で、
今の主要な処理系はだいたい int と同じ幅だったりしてあんまりリソースの節約にもならんかったりするし。
今の主要な処理系はだいたい int と同じ幅だったりしてあんまりリソースの節約にもならんかったりするし。
503デフォルトの名無しさん (ワッチョイ d77b-vPGa)
2019/03/04(月) 17:13:39.42ID:7Cz1/mIW0 ブール値の変数を1ビットで表現して1バイトに8個押し込めば
容量の節約にはなるだろうけど、速度的には損な気がするな。
(これも「実測しなけりゃ何も分からない人」向けの釣り餌かも)
ブール値をバイトなりワードで記憶すれば、CPUによっては
レジスタにロードした時点でゼロフラグに反映されて
ゼロとの比較やマスク演算が不要という利点を得られる場合もある。
容量の節約にはなるだろうけど、速度的には損な気がするな。
(これも「実測しなけりゃ何も分からない人」向けの釣り餌かも)
ブール値をバイトなりワードで記憶すれば、CPUによっては
レジスタにロードした時点でゼロフラグに反映されて
ゼロとの比較やマスク演算が不要という利点を得られる場合もある。
504デフォルトの名無しさん (ワッチョイ bf02-wVf3)
2019/03/04(月) 17:16:40.19ID:TpCWsYE80 >>503
CPUしだいだろうね。レジスタに入れないで0かどうかだけ調べる命令があったらそれの方が速いかも知れんし。
CPUしだいだろうね。レジスタに入れないで0かどうかだけ調べる命令があったらそれの方が速いかも知れんし。
505デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/04(月) 17:18:44.97ID:kNFhD2SD0 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|CPUしだいだろうね。レジスタに入れないで0かどうかだけ調べる命令があったらそれの方が速いかも知れんし
\___________ _______
V
/ ̄ ̄ ̄ ̄ ̄ ミ / ̄ ̄ ̄ \
/ ,――――-ミ / |
/ / / \ | ∨∨∨∨∨\ |
| / ,(・) (・) | |▲ ▲ ||
(6 つ | |(・) (・) 6)
| ___ | | | ||
| /__/ / | ¨ /
/| /\ \/\ /\
/ ̄ ̄ ̄ \
∧
/ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| なわけねーだろ!!
\__________________
|CPUしだいだろうね。レジスタに入れないで0かどうかだけ調べる命令があったらそれの方が速いかも知れんし
\___________ _______
V
/ ̄ ̄ ̄ ̄ ̄ ミ / ̄ ̄ ̄ \
/ ,――――-ミ / |
/ / / \ | ∨∨∨∨∨\ |
| / ,(・) (・) | |▲ ▲ ||
(6 つ | |(・) (・) 6)
| ___ | | | ||
| /__/ / | ¨ /
/| /\ \/\ /\
/ ̄ ̄ ̄ \
∧
/ ̄  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| なわけねーだろ!!
\__________________
506はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bf3e-3oSp)
2019/03/04(月) 17:21:36.33ID:Cw9L4ZBc0 真偽値の超巨大な配列が必要な場合ならともかく、
今の時代なら 1MB が 8MB になったくらいならたいした差ではないしな。
ただ、キャッシュにのるかどうかで劇的な差になったりもするから、
そこらへんは状況によるというか、それこそ実測しなきゃわからん。
今の時代なら 1MB が 8MB になったくらいならたいした差ではないしな。
ただ、キャッシュにのるかどうかで劇的な差になったりもするから、
そこらへんは状況によるというか、それこそ実測しなきゃわからん。
507デフォルトの名無しさん (ワッチョイ 17de-Pjzk)
2019/03/04(月) 17:42:05.47ID:VsmIFGpH0 >503
ロードストアに比べて
ALUの制約は少ない
だから詰めたほうがいいとなる
スペックシート読めずに
実測して速い遅い語ってる人は
遅くなると断言しよう
ロードストアに比べて
ALUの制約は少ない
だから詰めたほうがいいとなる
スペックシート読めずに
実測して速い遅い語ってる人は
遅くなると断言しよう
508デフォルトの名無しさん (アウアウカー Sa6b-WzxR)
2019/03/04(月) 18:01:28.91ID:jkGA6AVca プリミティブな静的変数のビットフィールドにアクセスするときってロック意味あると思う?
509デフォルトの名無しさん (ワッチョイ f7d2-mfNA)
2019/03/04(月) 18:13:29.18ID:9wLIIjqc0510デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/04(月) 18:18:11.00ID:kNFhD2SD0 10進で2桁程度の「整数値」にもintを使えという主張に似ているな
511デフォルトの名無しさん (ワッチョイ bf02-wVf3)
2019/03/04(月) 18:38:48.94ID:TpCWsYE80 >>505
あれ?そう?そう断言できる根拠あるの?
あれ?そう?そう断言できる根拠あるの?
512デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/04(月) 18:51:09.16ID:kNFhD2SD0 >>511
レジスタに入れないでって無理
メモリREADサイクルでどのみちラッチするんだから
名前のある公開レジスタか、名前のない非公開レジスタかという違いにしかならない
どうしても疑うんならHDLでCPU書いてみろ
レジスタに入れないでって無理
メモリREADサイクルでどのみちラッチするんだから
名前のある公開レジスタか、名前のない非公開レジスタかという違いにしかならない
どうしても疑うんならHDLでCPU書いてみろ
513KAC (ブーイモ MMcf-KKw9)
2019/03/04(月) 18:58:51.95ID:HyYNE7F2M IA32のTEST命令も思い出してあげて下さい
514503 (ワッチョイ d77b-vPGa)
2019/03/04(月) 19:06:20.72ID:7Cz1/mIW0 自分にツッコミ。
「ブール値の変数を1ビット幅にしてメモリ1バイトに8個押し込む」方式は
Cの規格とは相性悪いね。
&でポインタ取ったときにバイト番地で表現できないとか、
sizeofで1より小さな小数を返すのか、とか。
「ある変数が1バイトより小さな領域しか占めない」って性質が原因だ。
>>509
その点は気がつかなかった。1回の判定しか考えてなかったわ。
1バイトを1回だけ読んでマスク値をシフトしながら判定と、
1バイトずつ8回読むのとで比較しないといけないね。
一度にもっと多く、4バイト単位とかで処理できるかも知れないし。
「ブール値の変数を1ビット幅にしてメモリ1バイトに8個押し込む」方式は
Cの規格とは相性悪いね。
&でポインタ取ったときにバイト番地で表現できないとか、
sizeofで1より小さな小数を返すのか、とか。
「ある変数が1バイトより小さな領域しか占めない」って性質が原因だ。
>>509
その点は気がつかなかった。1回の判定しか考えてなかったわ。
1バイトを1回だけ読んでマスク値をシフトしながら判定と、
1バイトずつ8回読むのとで比較しないといけないね。
一度にもっと多く、4バイト単位とかで処理できるかも知れないし。
515デフォルトの名無しさん (ワッチョイ d701-WeXs)
2019/03/04(月) 19:30:00.46ID:FaqzbzR10 ソフトから見て1命令でも、メモリに対して1バスサイクルでビット操作は不可能だからねぇ。
メモリビット操作命令は裏でマイクロコードが暗躍して結局ロードストアアーキと同じ動きしてる。
lockが必要ない利点はあるけども。
メモリビット操作命令は裏でマイクロコードが暗躍して結局ロードストアアーキと同じ動きしてる。
lockが必要ない利点はあるけども。
516デフォルトの名無しさん (ワッチョイ d7f2-W5e4)
2019/03/04(月) 22:21:47.12ID:tJNb7RRD0 >>514
ここはCスレだけど、それまさにstd::vector<bool>でやらかしたやつだね。
ここはCスレだけど、それまさにstd::vector<bool>でやらかしたやつだね。
517デフォルトの名無しさん (ワッチョイ bf02-wVf3)
2019/03/05(火) 00:00:07.09ID:VLRAu/TX0 >>512
知らんよ。そういうCPUがあればそうだねってだけの話だし、お前もその自分の体験や知識から言ってるだけで全世界の全CPU調べた上で言ってるわけじゃないだろ?予想外の変なCPUはあるかも知れんから断定はできんだろう。
知らんよ。そういうCPUがあればそうだねってだけの話だし、お前もその自分の体験や知識から言ってるだけで全世界の全CPU調べた上で言ってるわけじゃないだろ?予想外の変なCPUはあるかも知れんから断定はできんだろう。
518デフォルトの名無しさん (ワッチョイ bf02-wVf3)
2019/03/05(火) 00:07:19.93ID:VLRAu/TX0 >>514
一応C言語では構造体にビットフィールドがあってビット単位で扱う事が出来るようになっているな。まああれは数値変数として扱うだけでboolではないわけだけど。効率が良いかどうかはどう最適化されるかに掛ってるかな。
一応C言語では構造体にビットフィールドがあってビット単位で扱う事が出来るようになっているな。まああれは数値変数として扱うだけでboolではないわけだけど。効率が良いかどうかはどう最適化されるかに掛ってるかな。
519デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/05(火) 00:12:21.39ID:/9vlYliD0 要素が3ビットの多次元配列が簡単に作れて扱える様になると便利ですね
520KAC (ブーイモ MM3b-KKw9)
2019/03/05(火) 00:55:28.63ID:zhV7s4kGM >>515
メモリバスがネックになるようなシステムなら、
バス幅のビット分情報が詰まってるほうが、
メモリのアクセス回数減らせるから利点もあるだろう。
なんにしろ、一長一短は有るんだから
正しく理解して正しく使うことが重要かと。
メモリバスがネックになるようなシステムなら、
バス幅のビット分情報が詰まってるほうが、
メモリのアクセス回数減らせるから利点もあるだろう。
なんにしろ、一長一短は有るんだから
正しく理解して正しく使うことが重要かと。
521デフォルトの名無しさん (ワッチョイ d77b-vPGa)
2019/03/05(火) 05:52:07.47ID:Q+OO1XNi0 >>518 1ビット幅のブール変数をビットフィールドと同じ扱い、
つまり「アドレスを求めることもsizeofを適用することもできない」
というルールにする手はあるか。
と言っても、アドレスを取れないとなると、ポインタ経由での操作、
配列に入れてインデクスで順番に走査することもできないわけで
非常に使い勝手の悪いものになってしまうね。
つまり「アドレスを求めることもsizeofを適用することもできない」
というルールにする手はあるか。
と言っても、アドレスを取れないとなると、ポインタ経由での操作、
配列に入れてインデクスで順番に走査することもできないわけで
非常に使い勝手の悪いものになってしまうね。
522デフォルトの名無しさん (ワッチョイ 9fda-W5e4)
2019/03/05(火) 06:03:05.43ID:C3u1nlxm0 ビットフィールド構造体はあくまで構造体であるのでアドレスを返すことは出来る
というか自分ならビットフィールドだけでは使い勝手が悪いので構造体をcharなどと一緒に共用体に纏める
構造体を配列で操作するときなどは同一アドレスのchar変数でビットフィールドを纏めたパッケージとして取り扱う方が使い勝手がいい
というか自分ならビットフィールドだけでは使い勝手が悪いので構造体をcharなどと一緒に共用体に纏める
構造体を配列で操作するときなどは同一アドレスのchar変数でビットフィールドを纏めたパッケージとして取り扱う方が使い勝手がいい
523デフォルトの名無しさん (ワッチョイ bf8c-Q9lp)
2019/03/05(火) 06:15:17.45ID:BSZ7CWqR0 maxima
(%i1) load("bitwise")$
(%i2) bit_not(i);
(%o2) bit_not(i)
(%i3) bit_not(bit_not(i));
(%o3) i
(%i4) bit_not(3);
(%o4) - 4
(%i5) bit_not(100);
(%o5) - 101
(%i6) bit_not(-101);
(%o6) 100
(%i1) load("bitwise")$
(%i2) bit_not(i);
(%o2) bit_not(i)
(%i3) bit_not(bit_not(i));
(%o3) i
(%i4) bit_not(3);
(%o4) - 4
(%i5) bit_not(100);
(%o5) - 101
(%i6) bit_not(-101);
(%o6) 100
524デフォルトの名無しさん (ワッチョイ 9fda-W5e4)
2019/03/05(火) 06:34:30.57ID:C3u1nlxm0 typedef struct {
unsigned8 b7 :1; /* bit7 */
unsigned8 b6 :1; /* bit6 */
unsigned8 b5 :1; /* bit5 */
unsigned8 b4 :1; /* bit4 */
unsigned8 b3 :1; /* bit3 */
unsigned8 b2 :1; /* bit2 */
unsigned8 b1 :1; /* bit1 */
unsigned8 b0 :1; /* bit0 */
} BYTE_FIELD;
unsigned8 b7 :1; /* bit7 */
unsigned8 b6 :1; /* bit6 */
unsigned8 b5 :1; /* bit5 */
unsigned8 b4 :1; /* bit4 */
unsigned8 b3 :1; /* bit3 */
unsigned8 b2 :1; /* bit2 */
unsigned8 b1 :1; /* bit1 */
unsigned8 b0 :1; /* bit0 */
} BYTE_FIELD;
525デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/05(火) 06:48:30.63ID:SFzBJqTc0526デフォルトの名無しさん (アウアウウー Sa9b-mjQG)
2019/03/05(火) 09:35:09.67ID:XZEd/J30a >>521
謎だな。
ブールの配列ならint bool やら char boolやらした時点で確保されるメモリをそのまま使って、and or xorあたりでビット操作してshiftで走査したらいいじゃん、ってのが爺の言い分。
どのビットを何に使ってるかってのはコメントに書いておいたり仕様書に書いといたりカンペ回したり。
メモリ確保もロードも最小単位があるんだから、単独1ビットのブール変数ってのは無理だろ。
あ、組込み用のマイコンは知らないけど。
謎だな。
ブールの配列ならint bool やら char boolやらした時点で確保されるメモリをそのまま使って、and or xorあたりでビット操作してshiftで走査したらいいじゃん、ってのが爺の言い分。
どのビットを何に使ってるかってのはコメントに書いておいたり仕様書に書いといたりカンペ回したり。
メモリ確保もロードも最小単位があるんだから、単独1ビットのブール変数ってのは無理だろ。
あ、組込み用のマイコンは知らないけど。
527デフォルトの名無しさん (アウアウウー Sa9b-RuLt)
2019/03/05(火) 12:23:27.77ID:TQUHbSsoa528デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/05(火) 12:35:19.43ID:SFzBJqTc0529デフォルトの名無しさん (アウアウウー Sa9b-RuLt)
2019/03/05(火) 12:58:00.63ID:TQUHbSsoa >>528
マウントご苦労様です。
マウントご苦労様です。
530デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/05(火) 13:03:24.22ID:SFzBJqTc0 まだいたの? アンダードッグ君
531デフォルトの名無しさん (アウアウウー Sa9b-RuLt)
2019/03/05(火) 14:27:58.97ID:TQUHbSsoa >>530
いつもマウントありがとうございます。
いつもマウントありがとうございます。
532デフォルトの名無しさん (ワッチョイ 9fad-kdfS)
2019/03/05(火) 14:29:27.16ID:TEkYesPv0 使用中なので取り外しが出来ませんでした
533デフォルトの名無しさん (スプッッ Sd3f-x13U)
2019/03/05(火) 18:49:30.99ID:t42KPL8Wd >>505
結局レジスタに入れずにってのは有りうるの?喧嘩せずに冷静に結論を出してくれると嬉しい。気になる。
結局レジスタに入れずにってのは有りうるの?喧嘩せずに冷静に結論を出してくれると嬉しい。気になる。
534デフォルトの名無しさん (ワッチョイ b702-IBRN)
2019/03/05(火) 18:58:34.77ID:6hPuHs1J0 intが64ビットの環境で32ビットの変数を扱いたいので、
とりあえず(私の環境で) typedef long INT32;とか定義してるんですが、
longを使うのが普通でしょうか?
環境によって違うらしいとは知っているのですが、
typedefに出来るだけ無難な型を使っときたいという意図です。
とりあえず(私の環境で) typedef long INT32;とか定義してるんですが、
longを使うのが普通でしょうか?
環境によって違うらしいとは知っているのですが、
typedefに出来るだけ無難な型を使っときたいという意図です。
535デフォルトの名無しさん (ワッチョイ d7b3-dc4V)
2019/03/05(火) 19:06:56.91ID:04oqNpdo0 >>534
stdint.hかinttypes.hをインクルードしてint32_tを使うのはダメなの?
stdint.hかinttypes.hをインクルードしてint32_tを使うのはダメなの?
536デフォルトの名無しさん (アークセー Sx0b-WeXs)
2019/03/05(火) 19:08:28.28ID:JrR+GNVhx レジスタに入れずに直接メモリ上のビット操作はないよ。
そりゃやろうと思えばメモリセルの制御単位を1ビットにしてデータバスを1ビット、アドレスバスのアドレス単位も1ビットにでもすれば1バスサイクルでのビットアクセスができるだろうけど、あまりにも非効率なのでやらないだろう。
そんな汎用CPUはどこにもないと断言しても良いレベル。
そりゃやろうと思えばメモリセルの制御単位を1ビットにしてデータバスを1ビット、アドレスバスのアドレス単位も1ビットにでもすれば1バスサイクルでのビットアクセスができるだろうけど、あまりにも非効率なのでやらないだろう。
そんな汎用CPUはどこにもないと断言しても良いレベル。
537デフォルトの名無しさん (アークセー Sx0b-WeXs)
2019/03/05(火) 19:09:18.75ID:JrR+GNVhx538デフォルトの名無しさん (ワッチョイ b702-IBRN)
2019/03/05(火) 19:13:46.41ID:6hPuHs1J0539デフォルトの名無しさん (ワッチョイ ffaa-Pjzk)
2019/03/05(火) 19:21:59.58ID:pv4h1d4+0 こんなデタラメまじりの掲示板で
聞いた所で所詮オカルト
はっきりさせたきゃ
sdramの転送どうなってるか
自分で読めばいい
聞いた所で所詮オカルト
はっきりさせたきゃ
sdramの転送どうなってるか
自分で読めばいい
540デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/05(火) 19:22:03.60ID:/9vlYliD0 それなら提供されている範囲で使える物を使うしかない
32ビットもあえて使わなくても良いように思うけど
何かこだわりがあるのかな?
32ビットもあえて使わなくても良いように思うけど
何かこだわりがあるのかな?
541デフォルトの名無しさん (ワッチョイ d77b-vPGa)
2019/03/05(火) 19:25:55.02ID:Q+OO1XNi0 >>538 コンパイラ付属のヘッダファイルも存在しないのかな。
その場合は、コンパイラの取説でも見て、32bitになる整数を選んで
typedef すれば良いかと。
どのみち移植する際には、その辺も含めて丸ごと再検討ってことになるだろうし。
その場合は、コンパイラの取説でも見て、32bitになる整数を選んで
typedef すれば良いかと。
どのみち移植する際には、その辺も含めて丸ごと再検討ってことになるだろうし。
542デフォルトの名無しさん (ラクペッ MMab-AU+X)
2019/03/05(火) 19:45:54.06ID:nFLweowNM543デフォルトの名無しさん (ワッチョイ d7da-mjQG)
2019/03/05(火) 20:04:57.01ID:/w4kwDux0 >>542
クロスだろ。ターゲットのlongが32なんでしょ。
クロスだろ。ターゲットのlongが32なんでしょ。
544デフォルトの名無しさん (ラクペッ MMab-AU+X)
2019/03/05(火) 20:14:28.31ID:z9gnaYkTM クロス開発でホストのintに何の意味がある?
545デフォルトの名無しさん (アウアウクー MM0b-tQZn)
2019/03/05(火) 20:17:27.37ID:EdVc4MwEM int型が64ビットの環境で、longという型が32ビットなのは引っかけだな。
あとで見た他人に恨まれるぞ。
あとで見た他人に恨まれるぞ。
546デフォルトの名無しさん (アウアウウー Sa9b-RuLt)
2019/03/05(火) 20:37:31.74ID:TQUHbSsoa >>537
話の流れとしてそこはビット単位の話ではなくなっている。
話の流れとしてそこはビット単位の話ではなくなっている。
547デフォルトの名無しさん (ワッチョイ d7da-mjQG)
2019/03/05(火) 20:38:33.36ID:/w4kwDux0 職場でクロス開発やってるけど、家では開発環境無くてVSかなんかで勉強してると妄想してた。
548デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/05(火) 20:43:04.13ID:SFzBJqTc0 >>531
マゾ野郎
マゾ野郎
549デフォルトの名無しさん (アウアウウー Sa9b-RuLt)
2019/03/05(火) 20:50:49.79ID:TQUHbSsoa >>548
昼夜を問わず沢山のマウントありがとうございます。
昼夜を問わず沢山のマウントありがとうございます。
550デフォルトの名無しさん (ワッチョイ d7dc-W5e4)
2019/03/05(火) 21:09:43.62ID:LEdL4Q1r0 ゆうたんなw
551デフォルトの名無しさん (ワッチョイ 9f01-dMaL)
2019/03/05(火) 22:33:03.94ID:QKmISP/B0 >>536
すげー昔の話だがメモリー側で論理演算できるようにして1アクセスでビット単位操作を可能にした特許があったな
元々はグラフィック用で図形の重なりの演算をメモリー側でやるようにしたものだったけど
特開昭61-264453
すげー昔の話だがメモリー側で論理演算できるようにして1アクセスでビット単位操作を可能にした特許があったな
元々はグラフィック用で図形の重なりの演算をメモリー側でやるようにしたものだったけど
特開昭61-264453
552デフォルトの名無しさん (ワッチョイ 9fab-IBRN)
2019/03/05(火) 22:51:02.28ID:U66Q7+Ir0 >>551
前世紀の話だが液晶モニタ側にメモリ機能を有して
PCの電源落としても液晶モニタ側に必要な情報が画像として記録されてるから
再起動後すぐにデータを使えるようになる、なんてニュースが真面目に流れてたっけ
前世紀の話だが液晶モニタ側にメモリ機能を有して
PCの電源落としても液晶モニタ側に必要な情報が画像として記録されてるから
再起動後すぐにデータを使えるようになる、なんてニュースが真面目に流れてたっけ
553デフォルトの名無しさん (アウアウウー Sa9b-WzxR)
2019/03/05(火) 23:10:02.68ID:tIL7S9l7a たとえばFPGAだとビット操作向けのコンピュータ作れたりするんですか?
554デフォルトの名無しさん (アークセー Sx0b-WeXs)
2019/03/06(水) 06:42:53.51ID:CUnnY/wEx >>553
外付けのSRAMやSDRAMではI/Fが決まってるので困難だけど、FPGA内で閉じて作るなら可能なんじゃないかしら。
外付けのSRAMやSDRAMではI/Fが決まってるので困難だけど、FPGA内で閉じて作るなら可能なんじゃないかしら。
555デフォルトの名無しさん (ワッチョイ 1f2d-vuRV)
2019/03/06(水) 08:02:21.67ID:y/rbGqHP0 大昔のDRAMには必要なビットだけ書き換えできるライト・パー・ビットって機能を実装したものもあったな
556デフォルトの名無しさん (アークセー Sx0b-WeXs)
2019/03/06(水) 08:08:34.10ID:CUnnY/wEx そういえばGRAM用にそういうRAMが何種類かあったね。
OpenGLとかで全画面書き換えが当たり前の今では役に立ちそうにないけど。
C言語とは関係ない話題ですまんかった。
OpenGLとかで全画面書き換えが当たり前の今では役に立ちそうにないけど。
C言語とは関係ない話題ですまんかった。
557デフォルトの名無しさん (ワッチョイ d7f2-W5e4)
2019/03/06(水) 08:31:46.74ID:LMHeKY6C0 MB-S1はそういう回路を搭載してグラフィックの処理がやたら速かった。
558デフォルトの名無しさん (ワッチョイ ffd2-IBRN)
2019/03/06(水) 12:18:27.87ID:Aj1thrX90 X68000のVRAMは変わった仕様だったみたいだね。
559デフォルトの名無しさん (ワッチョイ 5768-IBRN)
2019/03/06(水) 17:11:17.09ID:5bfpZyLy0 Cはコンパイラにより
型の変数の容量どころかポインターすら変わる
きれいに書くことなどできん!
Cの恐ろしいことは、標準っぽい関数が
リソース開放の事を考えてなかったりする所w
型の変数の容量どころかポインターすら変わる
きれいに書くことなどできん!
Cの恐ろしいことは、標準っぽい関数が
リソース開放の事を考えてなかったりする所w
560デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/06(水) 17:40:35.05ID:BXQzb/g70 表面的だな
どっかで吹き込まれたことの受け売りはすぐにバレる
どっかで吹き込まれたことの受け売りはすぐにバレる
561デフォルトの名無しさん (アウアウウー Sa9b-n14O)
2019/03/06(水) 18:06:49.31ID:t4z0A86na >>559
あちこちで暴れてるrubyボットか?
あちこちで暴れてるrubyボットか?
562デフォルトの名無しさん (ワッチョイ b75f-tQZn)
2019/03/06(水) 18:17:51.07ID:t0mzyE2R0 >>559
標準っぽい関数とはなんですか?
標準っぽい関数とはなんですか?
564KAC (ブーイモ MM3b-KKw9)
2019/03/06(水) 18:35:15.08ID:YYpMHTIdM565デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/06(水) 18:36:02.84ID:BXQzb/g70 その昔、printfはメモリリークするとかぬかしてたアホがいた
566デフォルトの名無しさん (ワッチョイ f7d2-mfNA)
2019/03/06(水) 18:41:35.18ID:OdnfdSEH0 小学生のプログラミングの授業が始まったせいで5chにも大量に小学生が湧いてるな
学校でプログラミングを教えるのは勘弁してほしいは
学校でプログラミングを教えるのは勘弁してほしいは
567デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/06(水) 18:44:20.55ID:DQfudujD0 小学校は5ちゃんねる使って授業やってるのかw
569デフォルトの名無しさん (ワッチョイ ff63-3oSp)
2019/03/06(水) 18:53:01.46ID:DQfudujD0 「ぼくのかんがえたさいきょうの」
が一番近い
が一番近い
570デフォルトの名無しさん (ブーイモ MMcf-NqO3)
2019/03/06(水) 21:25:19.62ID:nJiuC9TpM ぼくのかんがえたさいきょうの標準っぽい関数
atod
stringをdouble型に変換する。
標準っぽいが標準でない。
リソース開放を試みるものの、constに阻まれる。
atod
stringをdouble型に変換する。
標準っぽいが標準でない。
リソース開放を試みるものの、constに阻まれる。
571デフォルトの名無しさん (ワッチョイ 9f2f-W5e4)
2019/03/06(水) 21:35:13.47ID:BXQzb/g70 Cスレでstringかよw
572デフォルトの名無しさん (ワッチョイ ff8f-x13U)
2019/03/06(水) 22:53:39.41ID:s+f1BYLZ0 標準的な関数で痛い目にあったといえばlocaltime()
コイツがスレッドセーフじゃないせいでひどい目にあったよ……
まあ返り値がポインタな時点で疑うべきだったが。
コイツがスレッドセーフじゃないせいでひどい目にあったよ……
まあ返り値がポインタな時点で疑うべきだったが。
>>570
atod() にてリソース解放の必要はあるのでしょうか?
atod() にてリソース解放の必要はあるのでしょうか?
574デフォルトの名無しさん (ワッチョイ 92da-uGU8)
2019/03/07(木) 03:09:54.57ID:icwsNkaN0 stringは無視するとして、const char*をdoubleに変換する標準ライブラリ関数はatofまたはstrtod
575デフォルトの名無しさん (アウアウウー Sac3-8zRT)
2019/03/07(木) 18:27:15.02ID:LVW4xgZwa 超*2 初心者です。
#include<studio.h>
int main(void){
int a,b;
b=3*a+4;
a=2*b+3;
printf("a=%d\n",a);
printf("b=%d",b);
return 0;
}
とプログラムして、
a=-2
b=-2
という出力を期待したんですが、
a=3
b=0
と出力されてしまいました。
何が間違っているのでしょうか??
長文スマソ
#include<studio.h>
int main(void){
int a,b;
b=3*a+4;
a=2*b+3;
printf("a=%d\n",a);
printf("b=%d",b);
return 0;
}
とプログラムして、
a=-2
b=-2
という出力を期待したんですが、
a=3
b=0
と出力されてしまいました。
何が間違っているのでしょうか??
長文スマソ
576デフォルトの名無しさん (アウアウウー Sac3-8zRT)
2019/03/07(木) 18:28:41.26ID:LVW4xgZwa すみません
a=2*b+2
です
a=2*b+2
です
577デフォルトの名無しさん (ワッチョイ 1663-/kwh)
2019/03/07(木) 18:35:13.92ID:byd0ZGo00 a、bにまず初期値を入れないと
578デフォルトの名無しさん (ワッチョイ ff01-Ly0m)
2019/03/07(木) 18:40:02.18ID:s2VxUnjk0 int a,b;
b=3*a+4;
b = 3 * <未初期化の a は不定の値> + 4;
= <不定の値>
なにになるかはわっからんちん
b=3*a+4;
b = 3 * <未初期化の a は不定の値> + 4;
= <不定の値>
なにになるかはわっからんちん
579はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1e3e-/kwh)
2019/03/07(木) 18:40:34.01ID:fFrTWbSf0 >>575-576
まずプログラムとして完全に間違っているのは、
b=3*a+4; の評価時点で a は初期化されていない。
初期化されていない自動変数の中身は未規定で、
何が入っているかわからない。
そして第二の間違いとして、
C は二次方程式を解いたりしない。
b=3*a+4; は a の中身に 3 を書けて 4 を足すという処理をしたものを b に入れ
その次に a=2*b+3; の処理、すなわち b に 2 を書けて 3 を足したものを a に入れる。
そんだけ。
これはもう、質問以前の話で、完全に C のごくごく初歩をわかってないので、
普通に入門書を最初から読んで。
まずプログラムとして完全に間違っているのは、
b=3*a+4; の評価時点で a は初期化されていない。
初期化されていない自動変数の中身は未規定で、
何が入っているかわからない。
そして第二の間違いとして、
C は二次方程式を解いたりしない。
b=3*a+4; は a の中身に 3 を書けて 4 を足すという処理をしたものを b に入れ
その次に a=2*b+3; の処理、すなわち b に 2 を書けて 3 を足したものを a に入れる。
そんだけ。
これはもう、質問以前の話で、完全に C のごくごく初歩をわかってないので、
普通に入門書を最初から読んで。
580デフォルトの名無しさん (アウアウウー Sac3-8zRT)
2019/03/07(木) 18:41:46.43ID:LVW4xgZwa "1文字=1数字"の式をもたない連立方程式は解けないということですか?
581デフォルトの名無しさん (アウアウウー Sac3-8zRT)
2019/03/07(木) 18:43:15.30ID:LVW4xgZwa >>579
なるほど…出直して来ます。
なるほど…出直して来ます。
582デフォルトの名無しさん (ワッチョイ 1663-/kwh)
2019/03/07(木) 18:44:20.04ID:byd0ZGo00 その解法手順をプログラムで組まないと
583デフォルトの名無しさん (ワッチョイ ff01-Ly0m)
2019/03/07(木) 18:47:10.49ID:s2VxUnjk0 あああ 数学的に式を記述したら解を求めてくれる mathematica 的なものを考えてたのか
残念C言語はそこまで親切じゃない
残念C言語はそこまで親切じゃない
584デフォルトの名無しさん (スプッッ Sd52-P8NU)
2019/03/07(木) 18:48:25.12ID:mVKClUMzd むしろmathematicaだと解いてくれるの?すげぇ。
585デフォルトの名無しさん (ワッチョイ 1663-/kwh)
2019/03/07(木) 19:08:28.06ID:byd0ZGo00 連立方程式は無理じゃないか?
586はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1e3e-/kwh)
2019/03/07(木) 19:22:54.85ID:fFrTWbSf0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 【野球】野球の未来に危機感「マイナースポーツになる」 宮本慎也氏が開催…学童大会 [尺アジ★]
- 中国「捜索レーダー起動は各国の通常の手法」 火器管制用か回答せず [蚤の市★]
- 【訃報】声優・西村知道さん死去 「SLAM DUNK」安西先生役 9月に体調不良のため一時休業 [少考さん★]
- 三角形はカッコいい
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- みなみけ三姉妹誰が一番好き?
- 俺はヤンキーだから
- 【速報】高市早苗、起床 [779938112]
- ぬるぽ
