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/
前
http://mevius.2ch.net/test/read.cgi/tech/1500293207/
http://www.geocities.jp/c_cpp_cs/about_c/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 142 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh50538片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 21:16:28.12ID:Xv32D2hUd charが7ビットだったら、パックトBCDもなかった。
539片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 21:25:12.02ID:Xv32D2hUd 7ビットだったら1バイトの16進表示で1ビット無駄になるところだった。
540片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 21:44:27.38ID:Xv32D2hUd GCCかLLVMを使えば、適当なアーキテクチャのC言語コンパイラーを自由に作ることができるらしい。
541片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 21:54:15.38ID:Xv32D2hUd まあ、例えばNintendo SwitchのアーキテクチャをGCCかLLVMで定義すれば、そのアーキテクチャのコンパイラーが作れる訳だ。
542デフォルトの名無しさん (ワッチョイ da8a-Zagc)
2017/10/05(木) 22:04:36.58ID:dkgh60ez0 そういう用途なら「高位合成」でggrと幸せになれるぞ
LLVMは多分出番なしだ
LLVMは多分出番なしだ
543デフォルトの名無しさん (ドコグロ MMc2-WrkX)
2017/10/05(木) 23:19:53.46ID:G8RM0vBkM スイッチはテグラじゃないの?
544片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 23:34:31.98ID:Xv32D2hUd うん、NVIDIA Tegra のカスタムだね。例えが悪かったか。
545デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 23:36:35.55ID:3IfCpLlr0 >>536
charが16bitなら最近使ったけど
charが16bitなら最近使ったけど
546デフォルトの名無しさん (ワッチョイ 059f-XSap)
2017/10/05(木) 23:58:01.04ID:ioWgBjMx0 >>512
strncpy(I2C_MEM0.DATA, "\x11\x12\x13\x14", 4);
strncpy(I2C_MEM0.DATA, "\x11\x12\x13\x14", 4);
547デフォルトの名無しさん (ワッチョイ 7575-5Ff0)
2017/10/06(金) 00:05:52.06ID:L6h7mNkA0 実行時間の長い再帰関数(ハノイの塔)を実行しながら過程をglutというOpenGLライブラリで開いたウィンドウに描画させたいのですが方法ありませんか?
ステップ毎に再帰関数を最初から実行するしかないですか?
ステップ毎に再帰関数を最初から実行するしかないですか?
548デフォルトの名無しさん (ワッチョイ 7680-HC+h)
2017/10/06(金) 01:40:53.41ID:tqIbkLAn0 再帰して、関数を無限に呼ばない。
答えをメモ化しろ
「メモ化」で検索!
答えをメモ化しろ
「メモ化」で検索!
549デフォルトの名無しさん (ワッチョイ 558d-wbjw)
2017/10/06(金) 01:51:40.09ID:FhOeSxdK0 -1.400000e+01 2.043459e+01 1.738866e-15
-1.398525e+01 2.029842e+01 3.900652e-01
-1.399008e+01 2.029842e+01 -1.300367e-01
3DデータのSTLと言う形式で使われてるこの様な数字の型は
printfで出力する場合どの型フィールドになるのでしょうか
%e %gだけでは何だか違います
-1.398525e+01 2.029842e+01 3.900652e-01
-1.399008e+01 2.029842e+01 -1.300367e-01
3DデータのSTLと言う形式で使われてるこの様な数字の型は
printfで出力する場合どの型フィールドになるのでしょうか
%e %gだけでは何だか違います
550デフォルトの名無しさん (ワッチョイ 059f-XSap)
2017/10/06(金) 02:18:01.36ID:x0C9073k0 >>549
いやずばり %e だと思うが?
いやずばり %e だと思うが?
551デフォルトの名無しさん (ワッチョイ da8a-Zagc)
2017/10/06(金) 03:03:00.77ID:RA0YJgv70 >>546
最近出来た関数かな?
最近出来た関数かな?
552デフォルトの名無しさん (ワッチョイ 059f-TYR1)
2017/10/06(金) 03:37:10.08ID:x0C9073k0 >>551
最近って・・・うーん。
最近って・・・うーん。
553デフォルトの名無しさん (ワッチョイ 7a87-iGo5)
2017/10/06(金) 03:40:43.51ID:aYA4G4wj0554デフォルトの名無しさん (ワッチョイ 7a87-iGo5)
2017/10/06(金) 03:41:39.90ID:aYA4G4wj0 逆だw
Aは計算過程を変数Cに逐次書き込む
Bは画面リフレッシュのタイミングでCを描画
Aは計算過程を変数Cに逐次書き込む
Bは画面リフレッシュのタイミングでCを描画
555デフォルトの名無しさん (ワッチョイ da8a-Zagc)
2017/10/06(金) 04:15:34.73ID:RA0YJgv70556デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/06(金) 06:22:04.70ID:RySAjNni0 スペルミスかと思ったけど合ってるよな
間違い探し難しい
どこが変?
間違い探し難しい
どこが変?
557デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/06(金) 07:43:06.02ID:p4va+yl10 検索でちゃんと 555 と 546 がヒットするし何か見間違えたんだろうか
558デフォルトの名無しさん (ワッチョイ da8a-jcSU)
2017/10/06(金) 07:45:29.75ID:iQ5MtuBR0 目を細めて見るとstmcpyに… いや無理があるな
559デフォルトの名無しさん (ワッチョイ b68a-uDER)
2017/10/06(金) 08:33:19.91ID:4Iec6HYc0560デフォルトの名無しさん (ワッチョイ da8a-tpYQ)
2017/10/06(金) 09:47:31.52ID:RA0YJgv70 str[n]cpyが最後に0を書く条件は?
memcpyを使わない理由は?
memcpyを使わない理由は?
561デフォルトの名無しさん (ガックシ 060e-5Ff0)
2017/10/06(金) 10:38:12.40ID:EDz06gtM6 自分のミスはスルー
562デフォルトの名無しさん (ワッチョイ 4623-XSap)
2017/10/06(金) 10:39:45.78ID:d6jfQR1X0 strncpyは0で終端される条件が毎回わからなくて敬遠していたんです。
でも、strlcpyを使うようになってから肌年齢が10歳若返りました!
今は毎日がとっても楽しいです。
でも、strlcpyを使うようになってから肌年齢が10歳若返りました!
今は毎日がとっても楽しいです。
563デフォルトの名無しさん (ワッチョイ 0502-5Ff0)
2017/10/06(金) 10:54:46.60ID:U5/7Dlcy0 >>548
おお!センクス!
おお!センクス!
564デフォルトの名無しさん (ワッチョイ b632-rzHd)
2017/10/06(金) 13:16:11.88ID:qH0Ei3hn0565デフォルトの名無しさん (ササクッテロレ Sp75-Zdu/)
2017/10/06(金) 14:05:32.93ID:UT/zOTNDp 何の為にサイズ指定があるか、考えりゃわかるじゃん?
566デフォルトの名無しさん (ワッチョイ b68a-uDER)
2017/10/06(金) 14:53:14.89ID:4Iec6HYc0 >>564
「早く」の意味を調べてからほざきなさい
「早く」の意味を調べてからほざきなさい
567デフォルトの名無しさん (ワッチョイ b632-rzHd)
2017/10/06(金) 15:16:39.88ID:qH0Ei3hn0568デフォルトの名無しさん (ワッチョイ 0516-5Ff0)
2017/10/06(金) 15:20:28.76ID:B4vVDMXU0 うんち!
569デフォルトの名無しさん (ワッチョイ b68a-uDER)
2017/10/06(金) 17:45:14.09ID:4Iec6HYc0570デフォルトの名無しさん (アウアウカー Sa4d-IMWu)
2017/10/06(金) 18:41:01.91ID:fZ4i0/3ka571デフォルトの名無しさん (ワッチョイ b632-rzHd)
2017/10/06(金) 20:42:56.05ID:qH0Ei3hn0572デフォルトの名無しさん (ワッチョイ 059f-huPf)
2017/10/07(土) 14:47:24.49ID:f9dDdlSq0573デフォルトの名無しさん (エーイモ SEda-2JKf)
2017/10/08(日) 10:02:50.14ID:iaWD4MFGE PHPしかできないザコだったけどC言語が楽しい
Cのスタンダードなコーディングスタイルってないですか?
インデントにタブ使ってたりifに{}使ってなかったりするコードをよく見かけますけど
Cのスタンダードなコーディングスタイルってないですか?
インデントにタブ使ってたりifに{}使ってなかったりするコードをよく見かけますけど
574デフォルトの名無しさん (ワッチョイ fdc6-XSap)
2017/10/08(日) 10:09:18.29ID:+nfO/L5n0 戦争でも起こす気か?
575デフォルトの名無しさん (ワッチョイ dab3-Nz6W)
2017/10/08(日) 11:30:23.33ID:HosRocIl0576デフォルトの名無しさん (スププ Sdfa-qDdi)
2017/10/08(日) 11:56:53.58ID:SX/6L99bd 戦いの火蓋は切って落とされた
577デフォルトの名無しさん (ブーイモ MMa1-clNK)
2017/10/08(日) 13:00:43.13ID:FR3ELF64M インデントは空白4個だね
578デフォルトの名無しさん (ワッチョイ 0516-5Ff0)
2017/10/08(日) 13:04:33.16ID:SXbZ1Yc30579デフォルトの名無しさん (ワッチョイ 76e8-8BZG)
2017/10/08(日) 13:04:53.34ID:e96mZsST0 >>577
2つで十分ですよ
2つで十分ですよ
580デフォルトの名無しさん (ワッチョイ 0516-5Ff0)
2017/10/08(日) 13:05:13.53ID:SXbZ1Yc30 C++はゴミ
581デフォルトの名無しさん (ワッチョイ 059f-huPf)
2017/10/08(日) 14:51:03.41ID:c+/m9riq0 >>579
いやタブ1つにして表示幅はスペース4つ分だ。
いやタブ1つにして表示幅はスペース4つ分だ。
582デフォルトの名無しさん (ワッチョイ 059f-huPf)
2017/10/08(日) 14:54:49.62ID:c+/m9riq0 >>576
ああ。もうこのスレはスペース開けるか開けないか改行するかしないか何文字にするか中括弧はどうするか行末にバックスラッシュ入れて次行に書くか書かないかgotoどうするか等の話で延々と10年ぐらい費やされるんだろうな。
もちろんエディタの話に飛び火してviがvimがemacsがとなる。
ああ。もうこのスレはスペース開けるか開けないか改行するかしないか何文字にするか中括弧はどうするか行末にバックスラッシュ入れて次行に書くか書かないかgotoどうするか等の話で延々と10年ぐらい費やされるんだろうな。
もちろんエディタの話に飛び火してviがvimがemacsがとなる。
583デフォルトの名無しさん (ワッチョイ 7123-fbES)
2017/10/08(日) 14:55:08.52ID:bhcsmcAx0 スペース一つで充分
584デフォルトの名無しさん (ワッチョイ 76a5-wbjw)
2017/10/08(日) 15:03:04.04ID:Eg4i3QFB0 プログラム終了前にfree()が必要かどうかを忘れちゃいかん。
585デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/08(日) 16:00:19.88ID:tULmhvm40 ちょっと教えてくださいとあるHPから抜粋
意味が分からないので解説お願いします
私が負荷した文は<< >>で囲みます
struct Person {
char name[20];
int sex;
// char sex;
int age;
double height;
double weight;
} person_s; <<←今までの自分の認識:Person構造体のインスタンスperson_sを生成 しかしこの認識は後述@でpがインスタンスであると推定できることから間違っていると推定できる>>
<< person_sは構造体宣言の為の鋳型と推定 しかし様々なプログラムをチェックするとここでインスタンス宣言している例も見受けられる >>
<< 変数が構造体宣言の為の鋳型なのかインスタンスなのかはコンパイラが記述から自動判断???>>
person_s p; << ←pがPerson構造体のインスタンスであることは後述@のメンバ呼び出しで推定できる >>
とかけば、不要な宣言を減らすことができます。
構造体メンバの初期化
各メンバの初期化方法として次のようなものがあります
person_s p = {"Tom", 0, 20, 175.2, 66.5}; <<←構造体宣言鋳型person_sを使用しpをインスタンス宣言??>>
// または
person_s p; << 構造体宣言鋳型person_sを使用しpをインスタンス宣言?? >>
p.name = "Tom"; << この記述でpが構造体Personのインスタンスであると推定できる ・・・@ >>
p.sex = 0;
<< person_sは構造体宣言の鋳型 pはインスタンスであると推定できるが >>
<< 何故ダイレクトにPersonを使ってpを宣言しないのか? >>
<< 何故person_sなどという変数を使って間接的に宣言するのか? >>
<< うんちくきぼんぬ >>
意味が分からないので解説お願いします
私が負荷した文は<< >>で囲みます
struct Person {
char name[20];
int sex;
// char sex;
int age;
double height;
double weight;
} person_s; <<←今までの自分の認識:Person構造体のインスタンスperson_sを生成 しかしこの認識は後述@でpがインスタンスであると推定できることから間違っていると推定できる>>
<< person_sは構造体宣言の為の鋳型と推定 しかし様々なプログラムをチェックするとここでインスタンス宣言している例も見受けられる >>
<< 変数が構造体宣言の為の鋳型なのかインスタンスなのかはコンパイラが記述から自動判断???>>
person_s p; << ←pがPerson構造体のインスタンスであることは後述@のメンバ呼び出しで推定できる >>
とかけば、不要な宣言を減らすことができます。
構造体メンバの初期化
各メンバの初期化方法として次のようなものがあります
person_s p = {"Tom", 0, 20, 175.2, 66.5}; <<←構造体宣言鋳型person_sを使用しpをインスタンス宣言??>>
// または
person_s p; << 構造体宣言鋳型person_sを使用しpをインスタンス宣言?? >>
p.name = "Tom"; << この記述でpが構造体Personのインスタンスであると推定できる ・・・@ >>
p.sex = 0;
<< person_sは構造体宣言の鋳型 pはインスタンスであると推定できるが >>
<< 何故ダイレクトにPersonを使ってpを宣言しないのか? >>
<< 何故person_sなどという変数を使って間接的に宣言するのか? >>
<< うんちくきぼんぬ >>
586デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/08(日) 16:03:19.22ID:dE95R3nJ0 struct Person の前に typedef がありそうな雰囲気
587デフォルトの名無しさん (ワッチョイ 558c-v8iM)
2017/10/08(日) 16:13:28.90ID:yi/NbOiJ0588デフォルトの名無しさん (ワッチョイ dab3-Nz6W)
2017/10/08(日) 16:38:19.39ID:HosRocIl0 >>584
exit() の前にだろ
exit() の前にだろ
589デフォルトの名無しさん (ワッチョイ b68a-YM+x)
2017/10/08(日) 17:08:17.03ID:F9J/pQ0V0 C++ならtypedefなくても可
多分.cppでビルド通したんだろうね
多分.cppでビルド通したんだろうね
590デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/08(日) 17:13:11.77ID:dE95R3nJ0591デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/08(日) 17:16:54.10ID:tULmhvm40 なるほどー ありがとうございました
592デフォルトの名無しさん (ワッチョイ b68a-YM+x)
2017/10/08(日) 17:26:51.19ID:F9J/pQ0V0 >>590
C++ではtypedefは不要だよ(別にあっても構わないけど)
structとclassはメンバーのデフォルト設定がpublicかprivateかという違いを除けば構文的には全く同じように使える
structで継承することすら出来る
C++ではtypedefは不要だよ(別にあっても構わないけど)
structとclassはメンバーのデフォルト設定がpublicかprivateかという違いを除けば構文的には全く同じように使える
structで継承することすら出来る
593デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/08(日) 17:32:00.82ID:dE95R3nJ0 >>592
論点はそこじゃなくて
struct Person { };
Person p;
が C++ では文法として通るのは指摘の通り
質問元の記述では
struct Person { } person_s;
person_s p;
こうなってるから、これじゃ C++ の文法でも通らないでしょうよ ってことで
論点はそこじゃなくて
struct Person { };
Person p;
が C++ では文法として通るのは指摘の通り
質問元の記述では
struct Person { } person_s;
person_s p;
こうなってるから、これじゃ C++ の文法でも通らないでしょうよ ってことで
594デフォルトの名無しさん (ワッチョイ b68a-YM+x)
2017/10/08(日) 17:37:28.39ID:F9J/pQ0V0 通るよ
class宣言ではいちいちtypedefなど使わないのと同じように構造体でもtypedefは省略するのが一般的
むしろ先頭の構造体テンプレート名を省略して最後の型名だけ宣言する場合も多い
class宣言ではいちいちtypedefなど使わないのと同じように構造体でもtypedefは省略するのが一般的
むしろ先頭の構造体テンプレート名を省略して最後の型名だけ宣言する場合も多い
595デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/08(日) 17:42:06.58ID:dE95R3nJ0596デフォルトの名無しさん (ワッチョイ da8a-jcSU)
2017/10/08(日) 18:04:45.47ID:PUMPETat0 structが省略可能になってtypedefしなくなったのを
typedefが省略可能と間違って覚えてるんじゃないだろうか
typedefが省略可能と間違って覚えてるんじゃないだろうか
598デフォルトの名無しさん (フリッテル MM7e-ahfN)
2017/10/08(日) 18:14:58.26ID:ALuk3l/eM あれ?
通らないのかこれ?
通らないのかこれ?
599デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/08(日) 18:20:47.85ID:dE95R3nJ0 型名のエイリアス宣言と その型のインスタンスの生成
typedef を省略した場合には、全く同じ記述になるんだけど
後者のインスタンスの生成で翻訳してるぜ
typedef を省略した場合には、全く同じ記述になるんだけど
後者のインスタンスの生成で翻訳してるぜ
600デフォルトの名無しさん (ワッチョイ dab3-Nz6W)
2017/10/08(日) 18:29:26.73ID:HosRocIl0 通ると思う方がどうかしてるわ
601デフォルトの名無しさん (スププ Sdfa-qDdi)
2017/10/08(日) 18:32:58.84ID:LFQQ2ZHvd なぜ通ると思ったのか
602デフォルトの名無しさん (エーイモ SEda-2JKf)
2017/10/08(日) 19:03:56.08ID:uO7C8UFXE コーディングスタイルってたくさんあるんですね
とりあえず検索したらエリートの人達が使ってそうなものを集めてみました
C Coding Standard - CMU (ECE)
https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
GNU Coding Standards
https://www.gnu.org/prep/standards/html_node/Writing-C.html
NASA C Style Guide
http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf
C Coding Style - GNOME Developer Center
https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en
CERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
Linux kernel coding style
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
どれも難しそうなのでコーディングスタイル見るのやめようと思います。
githubで適当に見ても全然統一されてないし
とりあえずインデントは空白8個で{}を省略しないルールだけにしたいと思います。
とりあえず検索したらエリートの人達が使ってそうなものを集めてみました
C Coding Standard - CMU (ECE)
https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html
GNU Coding Standards
https://www.gnu.org/prep/standards/html_node/Writing-C.html
NASA C Style Guide
http://homepages.inf.ed.ac.uk/dts/pm/Papers/nasa-c-style.pdf
C Coding Style - GNOME Developer Center
https://developer.gnome.org/programming-guidelines/stable/c-coding-style.html.en
CERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
Linux kernel coding style
https://www.kernel.org/doc/html/v4.10/process/coding-style.html
どれも難しそうなのでコーディングスタイル見るのやめようと思います。
githubで適当に見ても全然統一されてないし
とりあえずインデントは空白8個で{}を省略しないルールだけにしたいと思います。
603デフォルトの名無しさん (エーイモ SEda-2JKf)
2017/10/08(日) 19:04:57.70ID:uO7C8UFXE 空白8個なのはメモ帳で見た時にこのくらいだから合わせてるだけです
604デフォルトの名無しさん (ワッチョイ da8a-jcSU)
2017/10/08(日) 19:18:41.81ID:PUMPETat0 また戦争がしたいのか、アンタは
605デフォルトの名無しさん (ワッチョイ fdc6-XSap)
2017/10/08(日) 19:26:45.12ID:+nfO/L5n0 戦闘民族
606デフォルトの名無しさん (ワッチョイ dab3-Nz6W)
2017/10/08(日) 19:30:12.30ID:HosRocIl0 書いてりゃわかると思うけど8は多すぎ
単に昔のシステムがそうだったと言うだけのことだから4とか2でいいと思う
単に昔のシステムがそうだったと言うだけのことだから4とか2でいいと思う
607デフォルトの名無しさん (ワッチョイ fdc6-XSap)
2017/10/08(日) 19:36:28.95ID:+nfO/L5n0 あーあ
608デフォルトの名無しさん (ワッチョイ 7123-fbES)
2017/10/08(日) 21:11:10.70ID:bhcsmcAx0609デフォルトの名無しさん (ワッチョイ 7575-5Ff0)
2017/10/09(月) 01:05:37.72ID:6VRPxojV0 マンデルブロの描画がうまくいきません。ズームするとすぐに単調になってしまいます。
動画
https://youtu.be/Ompp_YwrLPw
ソースコード
http://codepad.org/mlm33eRT
動画
https://youtu.be/Ompp_YwrLPw
ソースコード
http://codepad.org/mlm33eRT
610片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/09(月) 01:30:56.68ID:vdfcSFiBd >>609
クリックしたら画面の中心を移動させる。
クリックしたら画面の中心を移動させる。
611片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/09(月) 01:32:01.57ID:vdfcSFiBd ドラッグされたらずらす。
612デフォルトの名無しさん (ワッチョイ 7575-5Ff0)
2017/10/09(月) 01:53:40.87ID:6VRPxojV0 >>610
一応クリックするとある境界線付近を拡大するようにプログラムに書いてるのですが...
一応クリックするとある境界線付近を拡大するようにプログラムに書いてるのですが...
613片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/09(月) 03:32:25.69ID:vdfcSFiBd >>612
環境によって座標系が違うのかも知れない。ずらす値を変えてみては?
環境によって座標系が違うのかも知れない。ずらす値を変えてみては?
614デフォルトの名無しさん (ワッチョイ 558c-v8iM)
2017/10/09(月) 03:39:59.55ID:69HXGpsc0 >>609
単調になるのは k のループ回数が少ないせいでは
単調になるのは k のループ回数が少ないせいでは
615デフォルトの名無しさん (ワッチョイ da7c-yS8h)
2017/10/09(月) 06:38:40.98ID:hRP3P7r40 そうだね k=1000くらいで
616デフォルトの名無しさん (ガックシ 060e-5Ff0)
2017/10/09(月) 08:53:44.75ID:IXUwPWpS6617デフォルトの名無しさん (アウアウカー Sa4d-xgRF)
2017/10/09(月) 09:35:07.86ID:IkImbMA7a618デフォルトの名無しさん (ワッチョイ 6955-clNK)
2017/10/09(月) 09:51:45.98ID:UMVukllE0 俺はこの書き方
if (condition) {
}
else {
}
if (condition) {
}
else {
}
619デフォルトの名無しさん (ワッチョイ 459e-G6mq)
2017/10/09(月) 09:55:27.10ID:pMEz2IHg0 コーディングスタイルにこだわる奴は素人。
620デフォルトの名無しさん (ガックシ 060e-5Ff0)
2017/10/09(月) 12:12:59.35ID:9ioWbZDx6 Linuxのソースコードは?
621デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/09(月) 13:24:11.42ID:N3YX2Zf80 ソース整形ツールの動作オプションの数で眩暈がするぜw
622デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/09(月) 14:12:40.72ID:98rFBdXp0 ■■たびたびお世話になります なにが悪いのかご指摘おねがいします■■
struct I2C_MEM
{
char DEV_ADR ;
char REG_ADR ;
char DATA[4] ;
} static I2C_MEM[2] ;
task02_tst ( struct I2C_MEM *aaa )
{
char i,a[2],b[2],c[2];
i = 0 ;
while ( i <= 1 )
{
aaa -> DEV_ADR ;
a[i] = *aaa ; // データタイプがインコンパチでエラーになる char DEV_ADR を参照してくれない?
aaa -> REG_ADR ;
b[i] = *aaa ; // データタイプがインコンパチでエラーになる char REG_ADR を参照してくれない?
aaa -> DATA ;
c[i] = *aaa // データタイプがインコンパチでエラーになる char DATA を参照してくれない?
p += 1 ;
i += 1 ;
}
}
struct I2C_MEM
{
char DEV_ADR ;
char REG_ADR ;
char DATA[4] ;
} static I2C_MEM[2] ;
task02_tst ( struct I2C_MEM *aaa )
{
char i,a[2],b[2],c[2];
i = 0 ;
while ( i <= 1 )
{
aaa -> DEV_ADR ;
a[i] = *aaa ; // データタイプがインコンパチでエラーになる char DEV_ADR を参照してくれない?
aaa -> REG_ADR ;
b[i] = *aaa ; // データタイプがインコンパチでエラーになる char REG_ADR を参照してくれない?
aaa -> DATA ;
c[i] = *aaa // データタイプがインコンパチでエラーになる char DATA を参照してくれない?
p += 1 ;
i += 1 ;
}
}
623デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/09(月) 14:22:20.38ID:98rFBdXp0 ↑単純に関数内で構造体のデータにポインタ+インデックスでアクセスしたい
624デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/09(月) 14:26:06.29ID:98rFBdXp0 間違い発見
p += 1 ; は aaa += 1 ; に置き換えてください
p += 1 ; は aaa += 1 ; に置き換えてください
625片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/09(月) 14:39:31.76ID:vdfcSFiBd626片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/09(月) 15:09:21.54ID:vdfcSFiBd char型のデータを代入したいのなら、両辺の型をcharにしないといけないよ。
627デフォルトの名無しさん (ワッチョイ 5ae1-bBfX)
2017/10/09(月) 15:26:29.02ID:G+wiEnLh0 >>622
> aaa -> DEV_ADR ;
> a[i] = *aaa ;
例えばこの部分は a[i] = aaa->DEV_ADR; という処理を意図してるのではないかと思う
ただし aaa->DATA のところは char* 型になるので char 型の c[i] に代入できない
> aaa -> DEV_ADR ;
> a[i] = *aaa ;
例えばこの部分は a[i] = aaa->DEV_ADR; という処理を意図してるのではないかと思う
ただし aaa->DATA のところは char* 型になるので char 型の c[i] に代入できない
628デフォルトの名無しさん (ドコグロ MM0d-Nz6W)
2017/10/09(月) 15:56:12.50ID:of8Vs49yM629デフォルトの名無しさん (ワッチョイ 5593-Xc0J)
2017/10/09(月) 17:01:40.23ID:u+Z6y4O20 初心者相手に表記法を変えると理解しにくいかも。
本質から外れた部分が目についてしまうからね。
int i = 0;
while ( i <= 1 )
{
a[i] = aaa -> DEV_ADR ; // ポインタaaaが指す構造体の DEV_ADR メンバの値
b[i] = aaa -> REG_ADR ; // ポインタaaaが指す構造体の REG_ADR メンバの値
c[i] = aaa -> DATA ; // c[i] の型と DATA メンバの型が違うからエラー
aaa += 1 ;
i += 1 ;
}
てな感じかと。
>>627-628 をまとめただけ、だけど。
本質から外れた部分が目についてしまうからね。
int i = 0;
while ( i <= 1 )
{
a[i] = aaa -> DEV_ADR ; // ポインタaaaが指す構造体の DEV_ADR メンバの値
b[i] = aaa -> REG_ADR ; // ポインタaaaが指す構造体の REG_ADR メンバの値
c[i] = aaa -> DATA ; // c[i] の型と DATA メンバの型が違うからエラー
aaa += 1 ;
i += 1 ;
}
てな感じかと。
>>627-628 をまとめただけ、だけど。
630デフォルトの名無しさん (ワッチョイ 059f-huPf)
2017/10/09(月) 17:19:35.64ID:tFlwnlNI0 >>629
c を char *c[2] で宣言しておけばなんとかなるね。
c を char *c[2] で宣言しておけばなんとかなるね。
631デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/09(月) 17:34:38.15ID:98rFBdXp0 皆様 どうもありがとうございます
とりあえず代入の書き方が知りたかっただけでありまして
ちなみにインデックスを使用した配列メンバーのアクセスなんだけど
c[i] = aaa -> DATA +0 ;
d[i] = aaa -> DATA +1 ;
e[i] = aaa -> DATA +2 ;
f[i] = aaa -> DATA +3 ;
こんな書き方ってできるの?
とりあえず代入の書き方が知りたかっただけでありまして
ちなみにインデックスを使用した配列メンバーのアクセスなんだけど
c[i] = aaa -> DATA +0 ;
d[i] = aaa -> DATA +1 ;
e[i] = aaa -> DATA +2 ;
f[i] = aaa -> DATA +3 ;
こんな書き方ってできるの?
632デフォルトの名無しさん (ワッチョイ 75b3-qWqy)
2017/10/09(月) 17:44:30.12ID:N3YX2Zf80 ポインタを返す場合はそういう書き方
aaa->DATA+3
ポインタの指してる先を求めたい場合は
aaa->DATA[3]
左辺が何を要求しているのか(どういうものを操作したいのか)を頭の中で整理せずに
記述法だけを即物的にトレースするのはとてもまずい
aaa->DATA+3
ポインタの指してる先を求めたい場合は
aaa->DATA[3]
左辺が何を要求しているのか(どういうものを操作したいのか)を頭の中で整理せずに
記述法だけを即物的にトレースするのはとてもまずい
633デフォルトの名無しさん (ワッチョイ 958a-j1W8)
2017/10/09(月) 18:00:40.01ID:tNKVEDsJ0 task02_tst()の呼び出しが
task02_tst(I2C_MEM)なのか
task02_tst(&I2C_MEM[1])なのかわからん
前者と仮定するとDEV_ADRにアクセスする方法は
1. (*(aaa + i)).DEV_ADR
2. aaa[i].DEV_ADR
3. (aaa + i)->DEV_ADR
なんかが考えられるけど(2は1の糖衣構文)、ドットとアローそれぞれの
左側の違いを理解しないと先には進めないよ
task02_tst(I2C_MEM)なのか
task02_tst(&I2C_MEM[1])なのかわからん
前者と仮定するとDEV_ADRにアクセスする方法は
1. (*(aaa + i)).DEV_ADR
2. aaa[i].DEV_ADR
3. (aaa + i)->DEV_ADR
なんかが考えられるけど(2は1の糖衣構文)、ドットとアローそれぞれの
左側の違いを理解しないと先には進めないよ
634デフォルトの名無しさん (ワッチョイ 9dc3-evb8)
2017/10/09(月) 18:02:21.36ID:tda6mQVw0635デフォルトの名無しさん (ガックシ 06eb-HijE)
2017/10/12(木) 10:23:33.14ID:jY+yK3vs6 過疎ってるな
636デフォルトの名無しさん (ワッチョイ 69d2-89ZN)
2017/10/12(木) 11:18:46.53ID:mQ4S5/8+0 ちょっと質問です
↓下記のようなwhileの中身を複製するために使う実体化されない変数iをコンパイラ制御のための変数と明示する書き方ってあるんですか?
task02_tst ( I2C_MEM_typ *p , char i)
{
char i ;
i = 0 ;
while ( i < 2 )
{
p = p + i ;
a[i] = p -> DEV_ADR ;
b[i] = p -> REG_ADR ;
c[i][0] = p -> DATA[0] ;
c[i][1] = p -> DATA[1] ;
c[i][2] = p -> DATA[2] ;
c[i][3] = p -> DATA[3] ;
}
}
↓下記のようなwhileの中身を複製するために使う実体化されない変数iをコンパイラ制御のための変数と明示する書き方ってあるんですか?
task02_tst ( I2C_MEM_typ *p , char i)
{
char i ;
i = 0 ;
while ( i < 2 )
{
p = p + i ;
a[i] = p -> DEV_ADR ;
b[i] = p -> REG_ADR ;
c[i][0] = p -> DATA[0] ;
c[i][1] = p -> DATA[1] ;
c[i][2] = p -> DATA[2] ;
c[i][3] = p -> DATA[3] ;
}
}
637デフォルトの名無しさん (ワッチョイ 69d2-89ZN)
2017/10/12(木) 11:24:19.55ID:mQ4S5/8+0 task02_tst ( I2C_MEM_typ *p )
{
char i ;
i = 0 ;
while ( i < 2 )
{
p = p + i ;
a[i] = p -> DEV_ADR ;
b[i] = p -> REG_ADR ;
c[i][0] = p -> DATA[0] ;
c[i][1] = p -> DATA[1] ;
c[i][2] = p -> DATA[2] ;
c[i][3] = p -> DATA[3] ;
}
}
に修正します
{
char i ;
i = 0 ;
while ( i < 2 )
{
p = p + i ;
a[i] = p -> DEV_ADR ;
b[i] = p -> REG_ADR ;
c[i][0] = p -> DATA[0] ;
c[i][1] = p -> DATA[1] ;
c[i][2] = p -> DATA[2] ;
c[i][3] = p -> DATA[3] ;
}
}
に修正します
■ このスレッドは過去ログ倉庫に格納されています
