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:hEocmkh50439デフォルトの名無しさん (ワッチョイ 4b32-HyX/)
2017/10/03(火) 06:57:44.74ID:ZkSEHHAS0 うん、funcが怪しい
440デフォルトの名無しさん (ワッチョイ e59f-Txnz)
2017/10/03(火) 08:24:29.85ID:759fwjeu0 うん
441デフォルトの名無しさん (ワッチョイ b5ea-asy+)
2017/10/03(火) 11:40:15.04ID:QFI8P6tG0 配列サイズ 32要素で 32個 空白で生めてるが
文字列 という用語を使ってるあたり func は一般の文字列操作してそうだけど
終端記号 '\0' の分の考慮が落ちてるんでないの?
文字列 という用語を使ってるあたり func は一般の文字列操作してそうだけど
終端記号 '\0' の分の考慮が落ちてるんでないの?
442デフォルトの名無しさん (ワッチョイ b5ea-asy+)
2017/10/03(火) 11:59:57.12ID:QFI8P6tG0 「文字列」で32文字を取り扱いたいのなら 33要素の器が必要ってことで
文字の配列なら問題ないけどねー
文字の配列なら問題ないけどねー
443デフォルトの名無しさん (スップ Sd43-/LS6)
2017/10/03(火) 12:44:46.02ID:mP+8qDfMd そもそも再現しないコードを提示されてもなあ
444デフォルトの名無しさん (ワッチョイ fda5-8YQg)
2017/10/03(火) 14:52:11.00ID:YUFfLdQY0 >>437
処理系は何じゃらほい
処理系は何じゃらほい
445デフォルトの名無しさん (ワッチョイ 659e-cInq)
2017/10/03(火) 15:25:21.73ID:rugh+s9w0446デフォルトの名無しさん (ワッチョイ 458a-gyUt)
2017/10/03(火) 15:27:20.07ID:xmgx6pPY0 int n = 2;
char charList[n+1][32];
C言語的に、これってOKだっけ?
char charList[n+1][32];
C言語的に、これってOKだっけ?
447デフォルトの名無しさん (ガックシ 06cb-huvM)
2017/10/03(火) 15:39:40.20ID:2Eoq+Ro56 >>446
だめ
だめ
448デフォルトの名無しさん (ワッチョイ 9be7-a1BF)
2017/10/03(火) 16:18:15.22ID:9r7sfmBO0 char charList[n+1,32]こうしないとダメだよね?なにかっこ二つ使ってんだよ読み込めねえよって昔2次元配列で怒られたな
449デフォルトの名無しさん (ワッチョイ ab23-Txnz)
2017/10/03(火) 16:39:41.13ID:uTLw0mNj0 >>446
最近は大丈夫になった
最近は大丈夫になった
450デフォルトの名無しさん (ワッチョイ 4b32-HyX/)
2017/10/03(火) 16:45:08.36ID:ZkSEHHAS0 うん、今の1回生が生まれた頃から
451デフォルトの名無しさん (ワッチョイ 9be7-a1BF)
2017/10/03(火) 18:25:07.16ID:9r7sfmBO0 >>449
なったのか少しは便利になったのか
なったのか少しは便利になったのか
452デフォルトの名無しさん (ワッチョイ 8d7f-Txnz)
2017/10/03(火) 18:27:21.85ID:eHwxQvGT0 最近どころか、20年近く前からだし
>>448みたいな文法は存在しないんだけど、どこの世界のC言語なんだろ
>>448みたいな文法は存在しないんだけど、どこの世界のC言語なんだろ
453デフォルトの名無しさん (ガックシ 06cb-B85Q)
2017/10/03(火) 18:32:06.89ID:HgW0fxVo6 >>448みたいな文法欲しかった
454デフォルトの名無しさん (ワッチョイ 4b8a-1j52)
2017/10/03(火) 18:48:25.91ID:9KgPFlPY0 >>449
最近、ダメかもしれなくなったんだが
最近、ダメかもしれなくなったんだが
455デフォルトの名無しさん (ワッチョイ 9be7-a1BF)
2017/10/03(火) 18:53:27.85ID:9r7sfmBO0 >>448
これダメだC#だった、エラーになるわ
これダメだC#だった、エラーになるわ
456デフォルトの名無しさん (ワッチョイ fd81-IQJU)
2017/10/03(火) 19:11:20.28ID:XytTuyvU0 LLVMの作者に物凄い勢いで嫌われたから…
457デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
2017/10/03(火) 22:39:06.25ID:djTGgeKPp iOS11にしたらまともに入力できない
このクソOS
このクソOS
458デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
2017/10/03(火) 22:39:07.29ID:djTGgeKPp iOS11にしたらまともに入力できない
このクソOS
このクソOS
459デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
2017/10/03(火) 22:46:23.61ID:djTGgeKPp このクソOS死ね
460デフォルトの名無しさん (ササクッテロリ Spe1-3BEe)
2017/10/03(火) 22:46:56.99ID:djTGgeKPp まともに入力できないって
461デフォルトの名無しさん (ワッチョイ e59f-d/1N)
2017/10/04(水) 00:38:32.06ID:JPTWWYYO0462437 (ワッチョイ 2345-IQJU)
2017/10/04(水) 01:30:41.39ID:+TP/cS/R0463デフォルトの名無しさん (ワッチョイ 4b32-HyX/)
2017/10/04(水) 06:19:36.24ID:Sd/env2d0464デフォルトの名無しさん (ワッチョイ 8d7f-Txnz)
2017/10/04(水) 06:24:24.64ID:dCjKMF950 二次元配列の宣言についての話で合って
コンパイルが通るかどうかだけの話なんてしてねーぞ
コンパイルが通るかどうかだけの話なんてしてねーぞ
465デフォルトの名無しさん (ブーイモ MMd9-5mw5)
2017/10/04(水) 07:22:39.57ID:zhlDARQmM >>462
func何やってんの?
func何やってんの?
466デフォルトの名無しさん (アウアウカー Sad1-pOaJ)
2017/10/04(水) 08:10:59.64ID:F93q6j3ba *charList=0とかやってんじゃない?
467デフォルトの名無しさん (アウアウカー Sad1-pOaJ)
2017/10/04(水) 08:22:11.58ID:F93q6j3ba ってか二次元配列と二重配列間違ってねーか?
それとfunc呼んでからmemsetしたらfunc呼ぶ意味あるの?
memsetもループさせるんじゃなく一回で全部fillした方がよくない?
とかとか。
それとfunc呼んでからmemsetしたらfunc呼ぶ意味あるの?
memsetもループさせるんじゃなく一回で全部fillした方がよくない?
とかとか。
468デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 11:24:36.83ID:hBVSLcAId469デフォルトの名無しさん (アウアウカー Sad1-pOaJ)
2017/10/04(水) 13:29:31.00ID:ugGBRoRga470デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 13:49:31.85ID:hBVSLcAId >>469
funcの中身を知らないのに「意味無い」とか「意味あるの?」とかっていう書き込み、意味あるの?
それを聞けば問題の解決になるの?
少なくとも空白を埋めてない部分があるし
問題が発生する範囲で簡略化したのかもしれないし
当然意味があるから呼んでるんだろうと思うのが普通
funcの中身を知らないのに「意味無い」とか「意味あるの?」とかっていう書き込み、意味あるの?
それを聞けば問題の解決になるの?
少なくとも空白を埋めてない部分があるし
問題が発生する範囲で簡略化したのかもしれないし
当然意味があるから呼んでるんだろうと思うのが普通
471デフォルトの名無しさん (ワッチョイ fda5-8YQg)
2017/10/04(水) 14:20:16.63ID:Ot6iICCz0 C言語は俺に訊くなスレになってるな
472デフォルトの名無しさん (ワッチョイ 6d23-hiJG)
2017/10/04(水) 14:30:40.85ID:eeE5kOTG0 最近オブジェクト指向が入り口で、C言語がわからんっていう子が多いからなあ
473デフォルトの名無しさん (ワッチョイ 85b3-asy+)
2017/10/04(水) 14:50:53.16ID:38WTG0/g0 再現する最小限のコードに削ってるうちに問題点を自ら発見して終了
474デフォルトの名無しさん (ワッチョイ 458a-xF3V)
2017/10/04(水) 14:54:54.68ID:PNa+p1hk0 つーかfunc()以外の部分で特に問題が見当たらないならfunc()のせいで確定という単純明快な話
自作コードならfunc()もうpできるっしょ
自作コードならfunc()もうpできるっしょ
475デフォルトの名無しさん (アウアウカー Sad1-pOaJ)
2017/10/04(水) 14:56:07.21ID:6Zs0a9ZSa >>470
出されたソースのコメント見ると、配列の考え方が間違ってるように感じるけどね。それを示唆したかっただけだよ。
出されたソースのコメント見ると、配列の考え方が間違ってるように感じるけどね。それを示唆したかっただけだよ。
476デフォルトの名無しさん (ワッチョイ b581-Txnz)
2017/10/04(水) 15:12:09.84ID:f7rOF4qk0477デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 16:34:23.23ID:hBVSLcAId478デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 16:35:46.39ID:hBVSLcAId あとはfuncの中身を見ないとなんとも
組み込みのショボい環境だとスタックオーバーフローって可能性も無いことは無いが
組み込みのショボい環境だとスタックオーバーフローって可能性も無いことは無いが
479デフォルトの名無しさん (ワッチョイ 35d2-asy+)
2017/10/04(水) 16:51:26.35ID:+admsRHQ0 struct I2C_MEM //構造体の型宣言
{
char DEV_ADR ;
char REG_ADR ;
char DATA[0x03] ;
};
struct I2C_MEM I2C_MEM[3] =//構造体の型宣言
{
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x01 , 0x00000000 }
} ;
{
char DEV_ADR ;
char REG_ADR ;
char DATA[0x03] ;
};
struct I2C_MEM I2C_MEM[3] =//構造体の型宣言
{
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x01 , 0x00000000 }
} ;
480デフォルトの名無しさん (ワッチョイ 35d2-asy+)
2017/10/04(水) 16:56:16.34ID:+admsRHQ0 ↑構造体の初期化で
charを連続4byte設定するときの書き方
0x00000000はたぶん違いますよね?
どう書けば良いんですか?
初心者過ぎてすいません
charを連続4byte設定するときの書き方
0x00000000はたぶん違いますよね?
どう書けば良いんですか?
初心者過ぎてすいません
481デフォルトの名無しさん (ワッチョイ 35d2-asy+)
2017/10/04(水) 16:59:03.20ID:+admsRHQ0 struct I2C_MEM //構造体の型宣言
{
char DEV_ADR ;
char REG_ADR ;
char DATA[0x03] ;
};
struct I2C_MEM I2C_MEM[3] = //構造体の初期化
{
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x02 , 0x00000000 }
{ 0x7C , 0x03 , 0x00000000 }
} ;
{
char DEV_ADR ;
char REG_ADR ;
char DATA[0x03] ;
};
struct I2C_MEM I2C_MEM[3] = //構造体の初期化
{
{ 0x7C , 0x01 , 0x00000000 }
{ 0x7C , 0x02 , 0x00000000 }
{ 0x7C , 0x03 , 0x00000000 }
} ;
482片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-sxBl)
2017/10/04(水) 17:01:20.64ID:HMkkIXOid >>479
> struct I2C_MEM
> {
> char DEV_ADR ;
> char REG_ADR ;
> char DATA[0x03] ;
> };
struct I2C_MEM I2C_MEM[3] =
{
{ 0x7C , 0x01 , {0} }
{ 0x7C , 0x01 , {0} }
{ 0x7C , 0x01 , {0} }
} ;
> struct I2C_MEM
> {
> char DEV_ADR ;
> char REG_ADR ;
> char DATA[0x03] ;
> };
struct I2C_MEM I2C_MEM[3] =
{
{ 0x7C , 0x01 , {0} }
{ 0x7C , 0x01 , {0} }
{ 0x7C , 0x01 , {0} }
} ;
483デフォルトの名無しさん (ワッチョイ 35d2-asy+)
2017/10/04(水) 17:04:07.51ID:+admsRHQ0 >>482
回答ありがとうございます!
ちなみにこれだったらどうかくんでしょうか?
struct I2C_MEM I2C_MEM[3] = //構造体の初期化
{
{ 0x7C , 0x01 , 0x12345678 },
{ 0x7C , 0x02 , 0x12345678 },
{ 0x7C , 0x03 , 0x12345678 },
} ;
回答ありがとうございます!
ちなみにこれだったらどうかくんでしょうか?
struct I2C_MEM I2C_MEM[3] = //構造体の初期化
{
{ 0x7C , 0x01 , 0x12345678 },
{ 0x7C , 0x02 , 0x12345678 },
{ 0x7C , 0x03 , 0x12345678 },
} ;
484片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-sxBl)
2017/10/04(水) 17:19:18.44ID:HMkkIXOid >>483
struct I2C_MEM I2C_MEM[3] =
{
#ifdef BIG_ENDIAN //ビッグエンディアンの場合
{ 0x7C , 0x01 , {0x12, 0x34, 0x56, 0x78} },
{ 0x7C , 0x02 , {0x12, 0x34, 0x56, 0x78} },
{ 0x7C , 0x03 , {0x12, 0x34, 0x56, 0x78} },
#else // リトルエンディアンの場合
{ 0x7C , 0x01 , {0x78, 0x56, 0x34, 0x12} },
{ 0x7C , 0x02 , {0x78, 0x56, 0x34, 0x12} },
{ 0x7C , 0x03 , {0x78, 0x56, 0x34, 0x12} },
#endif
} ;
struct I2C_MEM I2C_MEM[3] =
{
#ifdef BIG_ENDIAN //ビッグエンディアンの場合
{ 0x7C , 0x01 , {0x12, 0x34, 0x56, 0x78} },
{ 0x7C , 0x02 , {0x12, 0x34, 0x56, 0x78} },
{ 0x7C , 0x03 , {0x12, 0x34, 0x56, 0x78} },
#else // リトルエンディアンの場合
{ 0x7C , 0x01 , {0x78, 0x56, 0x34, 0x12} },
{ 0x7C , 0x02 , {0x78, 0x56, 0x34, 0x12} },
{ 0x7C , 0x03 , {0x78, 0x56, 0x34, 0x12} },
#endif
} ;
485片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-sxBl)
2017/10/04(水) 17:21:40.35ID:HMkkIXOid486デフォルトの名無しさん (ワッチョイ 2312-IQJU)
2017/10/04(水) 17:27:10.52ID:PA2rRcfg0 全くどうでもいいことだが最近の若いモンはスマホに合わせて上矢印なのな
一つ勉強になった
一つ勉強になった
487デフォルトの名無しさん (ガックシ 06cb-huvM)
2017/10/04(水) 17:28:20.90ID:VznoOWf36 PCでも上じゃね?
488片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-sxBl)
2017/10/04(水) 17:40:04.96ID:HMkkIXOid >>484
#ifdef BIG_ENDIAN
# define ENDIAN_FIX(a,b,c,d) a,b,c,d
#else
# define ENDIAN_FIX(a,b,c,d) d,c,b,a
#endif
struct I2C_MEM I2C_MEM[3] =
{
{ 0x7C , 0x01 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
{ 0x7C , 0x02 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
{ 0x7C , 0x03 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
} ;
#ifdef BIG_ENDIAN
# define ENDIAN_FIX(a,b,c,d) a,b,c,d
#else
# define ENDIAN_FIX(a,b,c,d) d,c,b,a
#endif
struct I2C_MEM I2C_MEM[3] =
{
{ 0x7C , 0x01 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
{ 0x7C , 0x02 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
{ 0x7C , 0x03 , {ENDIAN_FIX(0x12, 0x34, 0x56, 0x78)} },
} ;
489デフォルトの名無しさん (ワッチョイ 7576-vp8x)
2017/10/04(水) 18:04:30.94ID:9y3nqzOw0 構造体の中身から推測すると、
書く順番はエンディアンに依存しないと思う
単純に配列の頭から1バイトずつ送信するだけ
仮にエンディアンで順番が変わるとしても
どうせガッツリ環境依存なコードなんだから
依存しちゃえばいい
環境依存が無いコードを書くつもりなら、
charが1バイトかどうかにも依存しないようにしないとね
書く順番はエンディアンに依存しないと思う
単純に配列の頭から1バイトずつ送信するだけ
仮にエンディアンで順番が変わるとしても
どうせガッツリ環境依存なコードなんだから
依存しちゃえばいい
環境依存が無いコードを書くつもりなら、
charが1バイトかどうかにも依存しないようにしないとね
490デフォルトの名無しさん (ワッチョイ 7576-vp8x)
2017/10/04(水) 18:10:15.78ID:9y3nqzOw0 >>488みたいなマクロは最悪
エンディアンていう言葉を覚えたばっかりの初心者が作る糞コード
エンディアンていう言葉を覚えたばっかりの初心者が作る糞コード
491デフォルトの名無しさん (ガックシ 06cb-huvM)
2017/10/04(水) 18:48:35.51ID:VznoOWf36 もちつけよw
492片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-sxBl)
2017/10/04(水) 19:22:55.76ID:HMkkIXOid エンディアンについて解説が必要ですか?
はい/いいえ
はい/いいえ
493デフォルトの名無しさん (ワッチョイ 2df2-njQ9)
2017/10/04(水) 20:07:04.96ID:V7FXDajl0 いいえ
494デフォルトの名無しさん (ワッチョイ 2df2-njQ9)
2017/10/04(水) 20:09:03.80ID:V7FXDajl0 Definitely no.
495デフォルトの名無しさん (ワッチョイ 85b3-asy+)
2017/10/04(水) 20:18:42.31ID:38WTG0/g0 struct I2C_MEM //構造体の型宣言
struct I2C_MEM I2C_MEM[3] =//構造体の型宣言
この手の文法で自明なことをコメントにする文化はなくならないのかな
struct I2C_MEM I2C_MEM[3] =//構造体の型宣言
この手の文法で自明なことをコメントにする文化はなくならないのかな
496デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 20:46:10.64ID:hBVSLcAId 俺のコードはその対極
大きな流れしかコメントをかかない
大きな流れしかコメントをかかない
497デフォルトの名無しさん (ワッチョイ 9b9e-Txnz)
2017/10/04(水) 21:20:04.88ID:azmmV5/P0 I2Cか。データは8ビットで受けて、8ビットシフトしてビットORだな。
data = hi<<16 | mid<<8 | lo
data = hi<<16 | mid<<8 | lo
498デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 21:27:53.34ID:hBVSLcAId どう見ても送信
499デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 21:31:39.40ID:hBVSLcAId >>492
お前の糞マクロ、どの辺が糞か解説が必要?
お前の糞マクロ、どの辺が糞か解説が必要?
500デフォルトの名無しさん (スップ Sd03-vp8x)
2017/10/04(水) 21:32:35.25ID:hBVSLcAId ちなみに、ゆで玉子は輪切り派
501デフォルトの名無しさん (ワッチョイ 059f-XSap)
2017/10/05(木) 01:23:13.38ID:ioWgBjMx0 >>483
やってみな。
やってみな。
502デフォルトの名無しさん (ワッチョイ 059f-XSap)
2017/10/05(木) 01:24:28.79ID:ioWgBjMx0 やってみなじゃない。どう動くかじゃなくてどう書くかか。
どうなって欲しいのかが書かれてないから答えられないな。
どうなって欲しいのかが書かれてないから答えられないな。
503437 (ワッチョイ 5a45-wbjw)
2017/10/05(木) 03:25:02.16ID:JVwY/YZa0 >>465
全体のコードは自作というか(自社製)ですが、funcは他社のライブラリなんです。
ソースがあればなんとかなったのかもですが・・・。
>>467
実際はfunc呼んだ後にcharListの値を呼んで色々作業しています。
>>469
普通の2次元char配列のつもりです。2次元配列というのはC言語的にはシンタックスシュガーにすぎず、
char a[m][n]もchar a[m*n]も等価なのですよね。なので、先頭ポインタから(m*n-1)個先までの
アドレスの範囲内なら範囲外アクセスエラーは起こり得ないと理解しています。
>>474の結論に至る前に、何かC言語で致命的な勘違いや思い込みをしているのかと
思って質問した次第です。今思うとエスパー回答を強いてしまって大変申し訳ありませんでした。
ひとまずはfuncを一切呼ばない形に直して事なきを得ました。
>>437で言った、「charListをプリントしたりすると何故か問題なく動く」からそれで一時凌ぎする考えも
頭をよぎりましたが、思いとどまりました。
ひとまずこれで終えます。回答くださった方々、本当にありがとうございました。
全体のコードは自作というか(自社製)ですが、funcは他社のライブラリなんです。
ソースがあればなんとかなったのかもですが・・・。
>>467
実際はfunc呼んだ後にcharListの値を呼んで色々作業しています。
>>469
普通の2次元char配列のつもりです。2次元配列というのはC言語的にはシンタックスシュガーにすぎず、
char a[m][n]もchar a[m*n]も等価なのですよね。なので、先頭ポインタから(m*n-1)個先までの
アドレスの範囲内なら範囲外アクセスエラーは起こり得ないと理解しています。
>>474の結論に至る前に、何かC言語で致命的な勘違いや思い込みをしているのかと
思って質問した次第です。今思うとエスパー回答を強いてしまって大変申し訳ありませんでした。
ひとまずはfuncを一切呼ばない形に直して事なきを得ました。
>>437で言った、「charListをプリントしたりすると何故か問題なく動く」からそれで一時凌ぎする考えも
頭をよぎりましたが、思いとどまりました。
ひとまずこれで終えます。回答くださった方々、本当にありがとうございました。
504デフォルトの名無しさん (ワッチョイ 5a45-wbjw)
2017/10/05(木) 03:26:43.92ID:JVwY/YZa0505デフォルトの名無しさん (ワッチョイ 5a7c-EY9l)
2017/10/05(木) 05:32:30.50ID:PdAAtG4s0506デフォルトの名無しさん (フリッテル MM7e-p8Fh)
2017/10/05(木) 05:39:44.88ID:+DJIpzmcM char[m][n]はchar**、char[m*n]はchar*、データ型は違う
507デフォルトの名無しさん (ブーイモ MMde-Pirc)
2017/10/05(木) 08:10:49.48ID:2SMjslBqM funcに与える引数の条件がちゃんと理解できてないとか
508デフォルトの名無しさん (エムゾネ FFfa-8mMW)
2017/10/05(木) 08:15:39.56ID:Nh1QNpvaF char[m*n]って何?
結局ただの一次元配列でしょ?
結局ただの一次元配列でしょ?
509デフォルトの名無しさん (ワッチョイ 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もなかった。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- コーヒーにミルク←うまい 紅茶にミルク←うまい ミルクコーヒーにミルクティー←これ
- キ...キャ...キャ...キャン...
- 自衛隊員が民間人を刺殺した事件ってもはや個人の問題ではないじゃん
- 【悲報】女さん「ハローワークで仕事を探してる3-40代の中年男性いるでしょ。あれ何?」 [483447288]
- ( ・᷄ὢ・᷅ )おう
- これまでは核分裂。分裂する際の莫大なエネルギーを電気にしていた
