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:hEocmkh50509デフォルトの名無しさん (ワッチョイ b632-rzHd)
2017/10/05(木) 10:10:50.98ID:6niZC7Nf0510デフォルトの名無しさん (ワッチョイ da33-qWqy)
2017/10/05(木) 10:11:07.83ID:TrTYAooo0 >>503
> 2次元配列というのはC言語的にはシンタックスシュガーにすぎず、
> char a[m][n]もchar a[m*n]も等価なのですよね。なので、先頭ポインタから(m*n-1)個先までの
> アドレスの範囲内なら範囲外アクセスエラーは起こり得ないと理解しています。
だいたいの実装では、特に char 類なら、動作上問題が起こることは考えにくいものの、
言語規格上の保証は無いよ。
https://www.jpcert.or.jp/m/sc-rules/c-arr30-c.html
> 2次元配列というのはC言語的にはシンタックスシュガーにすぎず、
> char a[m][n]もchar a[m*n]も等価なのですよね。なので、先頭ポインタから(m*n-1)個先までの
> アドレスの範囲内なら範囲外アクセスエラーは起こり得ないと理解しています。
だいたいの実装では、特に char 類なら、動作上問題が起こることは考えにくいものの、
言語規格上の保証は無いよ。
https://www.jpcert.or.jp/m/sc-rules/c-arr30-c.html
511デフォルトの名無しさん (ワッチョイ b632-rzHd)
2017/10/05(木) 12:14:43.27ID:6niZC7Nf0 そういう保証は紙っきれの条文より自分で確認・検証することが最重要だ
いくら「保証されている」ことでもコンパイラがバグったり中には確信的に違反するケースまである
空想論の域を出ないくだらんことのために
現実的なアイディアを諦めていては生産性が上がらない
いくら「保証されている」ことでもコンパイラがバグったり中には確信的に違反するケースまである
空想論の域を出ないくだらんことのために
現実的なアイディアを諦めていては生産性が上がらない
512デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/05(木) 12:51:26.83ID:TRdRMfhC0 struct I2C_MEM
{
char DEV_ADR ;
char REG_ADR ;
char DATA[4] ;
} static I2C_MEM0 ;
I2C_MEM0.DEV_ADR = 0x7C ;
I2C_MEM0.REG_ADR = 0x01 ;
I2C_MEM0.DATA[4] = { 0x11,0x12,0x13,0x14 } ; ←これはエラーになる
//I2C_MEM0.DATA[0] = 0x11 ; ←こちらのパターンはエラーにならない
//I2C_MEM0.DATA[1] = 0x12 ;
//I2C_MEM0.DATA[2] = 0x13 ;
//I2C_MEM0.DATA[3] = 0x14 ;
4バイト一気に設定の書き方はどうすればいいんでしょうか?
{
char DEV_ADR ;
char REG_ADR ;
char DATA[4] ;
} static I2C_MEM0 ;
I2C_MEM0.DEV_ADR = 0x7C ;
I2C_MEM0.REG_ADR = 0x01 ;
I2C_MEM0.DATA[4] = { 0x11,0x12,0x13,0x14 } ; ←これはエラーになる
//I2C_MEM0.DATA[0] = 0x11 ; ←こちらのパターンはエラーにならない
//I2C_MEM0.DATA[1] = 0x12 ;
//I2C_MEM0.DATA[2] = 0x13 ;
//I2C_MEM0.DATA[3] = 0x14 ;
4バイト一気に設定の書き方はどうすればいいんでしょうか?
513デフォルトの名無しさん (ワッチョイ 89a5-zYvd)
2017/10/05(木) 12:51:30.07ID:/OlbfMDH0 コメント邪魔
514デフォルトの名無しさん (ワッチョイ 89a5-zYvd)
2017/10/05(木) 12:52:03.70ID:/OlbfMDH0 誤爆m(_'_)m
515デフォルトの名無しさん (ワッチョイ 89a5-zYvd)
2017/10/05(木) 12:59:34.91ID:/OlbfMDH0 >>512
一気に初期化する必要性がわからんが
糞コード
assert( 4 == sizeof ( unsigned long ) );
*( unsigned long* )I2C_MEM0.DATA = *( unsigned long* )"\x11\x12\x13\x14";
一気に初期化する必要性がわからんが
糞コード
assert( 4 == sizeof ( unsigned long ) );
*( unsigned long* )I2C_MEM0.DATA = *( unsigned long* )"\x11\x12\x13\x14";
516デフォルトの名無しさん (スップ Sdfa-UWdl)
2017/10/05(木) 13:01:44.78ID:gOaVCYiad517デフォルトの名無しさん (ワッチョイ bdd2-qWqy)
2017/10/05(木) 13:04:36.67ID:TRdRMfhC0 なるほどー ありがとうございました
518デフォルトの名無しさん (ワッチョイ 89a5-zYvd)
2017/10/05(木) 13:06:18.55ID:/OlbfMDH0 ARMだと1バイトづつ初期化した方が小さくなるような気がする
519デフォルトの名無しさん (ガックシ 060e-5Ff0)
2017/10/05(木) 13:13:39.58ID:/W/G46pt6 無名配列のリテラルは初期化時には使えるけど代入には使えないってこと?
520デフォルトの名無しさん (ガックシ 060e-5Ff0)
2017/10/05(木) 13:16:53.65ID:/W/G46pt6 初期化時というか宣言時
521デフォルトの名無しさん (ワッチョイ 3a60-qWqy)
2017/10/05(木) 19:51:18.71ID:72rIdNeW0 ビッグエンディアンの環境を教えてください
522片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:02:42.15ID:Xv32D2hUd HP-UX、MOTOROLA、AIX、Solaris
523片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:09:22.11ID:Xv32D2hUd Apple PowerPC Mac、Sun Blade、SGI O2??
524片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:14:07.63ID:Xv32D2hUd ビッグエンディアンの仮想環境はQEMU以外にないから、エミュレータを作れば有名になれるよ。
525片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:29:07.01ID:Xv32D2hUd >>524
ごめん、PowerPCのエミュレータにPearPCがあった。
ごめん、PowerPCのエミュレータにPearPCがあった。
526デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 20:30:19.57ID:3IfCpLlr0 SH
527片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:32:46.00ID:Xv32D2hUd SolarisエミュレータにCHARONがある(有料)。ビッグエンディアンの環境はお金がかかるよ。
528デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 20:34:21.70ID:3IfCpLlr0 整数の負の数に1の補数を用いる環境
整数の負の数に絶対値と符号ビットを用いる環境
整数にトラップ表現がある環境
charが8の倍数ビットでない環境
を教えてください
整数の負の数に絶対値と符号ビットを用いる環境
整数にトラップ表現がある環境
charが8の倍数ビットでない環境
を教えてください
529デフォルトの名無しさん (ササクッテロレ Sp75-Zdu/)
2017/10/05(木) 20:34:53.22ID:olaqz/S6p ARMは選択出来たっけ?
まあ、みんなリトルで使ってるがな。
地味にMicroBlazeがビッグだな。
まあ、みんなリトルで使ってるがな。
地味にMicroBlazeがビッグだな。
530デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 20:39:08.91ID:3IfCpLlr0 MIPSもバイ
ミドルエンディアンの環境を教えて下さい
ミドルエンディアンの環境を教えて下さい
531デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 20:41:19.68ID:3IfCpLlr0 おれはリトル
わざわざお尻から食べないよね普通
わざわざお尻から食べないよね普通
532片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:42:01.73ID:Xv32D2hUd 博物館に所蔵されてるようなコンピュータ調べて何の意味があるんだろう。。。
533デフォルトの名無しさん (ワッチョイ 9d76-hWC7)
2017/10/05(木) 20:44:02.75ID:3IfCpLlr0534片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 20:46:00.84ID:Xv32D2hUd >>528
絶滅したコンピュータアーキテクチャの話はしたくない。
絶滅したコンピュータアーキテクチャの話はしたくない。
535デフォルトの名無しさん (ササクッテロレ Sp75-Zdu/)
2017/10/05(木) 20:46:52.00ID:olaqz/S6p 6502とか、地味に生きてるやん?
あ、あれはエミュレータか。
あ、あれはエミュレータか。
536片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sdfa-yc5c)
2017/10/05(木) 21:04:49.44ID:Xv32D2hUd ほとんどの環境のcharが8ビットなのは、基本ASCIIが7ビットで表現できることと、7ビットより8ビットの方が切りが良くてパリティビットなどに使えて便利だったことによる。
537デフォルトの名無しさん (ワッチョイ 054b-5Ff0)
2017/10/05(木) 21:09:26.31ID:PAHxl06e0 最近C言語ハマってる
言語がシンプルなのと直にコンピュータを操ってる感
言語がシンプルなのと直にコンピュータを操ってる感
538片山博文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
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★4 [Hitzeschleier★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
