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
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh50830デフォルトの名無しさん (ブーイモ MM71-v1IO)
2017/10/19(木) 12:34:12.75ID:LAmWAPnYM831デフォルトの名無しさん (ワッチョイ 3dea-U5aN)
2017/10/19(木) 14:41:51.95ID:cxE3kH8I0 https://ja.wikipedia.org/wiki/字下げスタイル
戦争だ
戦争だ
832デフォルトの名無しさん (ワッチョイ ddb3-q7ul)
2017/10/19(木) 15:33:33.89ID:PsgLgPWo0 http://9cguide.appspot.com/15-05.html
これのモードの切り替えってところで判定結果違うんだが俺だけ?
pがでたらめな数字になる
コピペしても変わらなかったから多分タイプミスとかじゃないと思う
これのモードの切り替えってところで判定結果違うんだが俺だけ?
pがでたらめな数字になる
コピペしても変わらなかったから多分タイプミスとかじゃないと思う
833デフォルトの名無しさん (ワッチョイ 3dea-U5aN)
2017/10/19(木) 15:40:34.18ID:cxE3kH8I0 下の[実行結果] のように出力されるためには
× printf("p = %d\n",p);
○ printf("*p = %d\n",*p);
でないとな
× printf("p = %d\n",p);
○ printf("*p = %d\n",*p);
でないとな
834デフォルトの名無しさん (ワッチョイ ddb3-q7ul)
2017/10/19(木) 15:50:26.60ID:PsgLgPWo0 できた
ありがとう
ありがとう
835デフォルトの名無しさん (ワッチョイ cee7-gNqP)
2017/10/19(木) 22:50:52.77ID:4jVxr5CI0 10 1
scanf("%d%d", a, b);
こう読み込んだ時に空白を飛び越えて読み込んでくれるん?
10,1
この時はエラーになっちゃう?
scanf("%d%d", a, b);
こう読み込んだ時に空白を飛び越えて読み込んでくれるん?
10,1
この時はエラーになっちゃう?
836デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/19(木) 22:53:39.25ID:Y4NllfOF0 多分空白はできる
,を入れたかったら%d,%dすれば多分できる
,を入れたかったら%d,%dすれば多分できる
837デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/19(木) 23:25:36.20ID:6TDKNKTM0 scanfのフォーマット指定は面倒だぞ
正直使いこなす気すらない
正直使いこなす気すらない
838デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/19(木) 23:26:22.86ID:6TDKNKTM0 if ()
{
}
else
{
}
無いわな
{
}
else
{
}
無いわな
839デフォルトの名無しさん (ワッチョイ 1981-bcII)
2017/10/19(木) 23:41:36.02ID:c1L92+Tr0 if () {
}
else {
}
このフォーマットだと心が平和
}
else {
}
このフォーマットだと心が平和
840デフォルトの名無しさん (ワッチョイ a568-OJdz)
2017/10/19(木) 23:52:20.12ID:vx5pXf0B0841デフォルトの名無しさん (ワッチョイ cee7-gNqP)
2017/10/20(金) 00:41:34.11ID:Wby94Fq80 >>837
入力が決められてなかったらscanfじゃあできないからわかるわー
入力が決められてなかったらscanfじゃあできないからわかるわー
842デフォルトの名無しさん (ワッチョイ 1a87-dU7J)
2017/10/20(金) 01:19:37.06ID:l11teSHI0 >>839
俺もそれ
俺もそれ
843デフォルトの名無しさん (スッップ Sd9a-+59V)
2017/10/20(金) 04:37:42.47ID:yDlUYSKqd844デフォルトの名無しさん (エーイモ SE7a-5x7G)
2017/10/20(金) 09:24:11.93ID:NCAWbF0uE 本買うお金がないのですが公式なドキュメントってどこで見れますかね?
845デフォルトの名無しさん (ワッチョイ ddb3-0MKJ)
2017/10/20(金) 09:53:04.65ID:VprmOZRL0 >>1に書いてあるのではだめなん。
846デフォルトの名無しさん (ワッチョイ d6e8-bcII)
2017/10/20(金) 09:58:32.79ID:rxHA3C970 質問が漠然としすぎてる。
847デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/20(金) 10:55:02.73ID:7oD3lqB2p C言語の仕様は規格が決まってるから、調べれば幾らでもネットに落ちてるんだがなぁ〜
848デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/20(金) 10:56:41.44ID:7oD3lqB2p ランタイムライブラリやプラグマやデファインの事なら使ってるコンパイラにドキュメントがあるだろ?
849デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/20(金) 12:36:54.91ID:XMzxe3/+0 ネスティングを気にするかどうかは各自のスタイルによる
気にならない書き方はいくらでもできるし
ファイル分割がいやでべた書きする奴はネスティング気にするだろ
気にならない書き方はいくらでもできるし
ファイル分割がいやでべた書きする奴はネスティング気にするだろ
850デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/20(金) 12:40:39.31ID:3KJGg1dF6 どう思う?
#include <stdio.h>
void test(a, b, c)
int *a;
int *b;
int *c;
{
*c = *a + *b;
}
int main(void)
{
auto register int a;
auto register int b;
auto register int result;
a = 10;
b = 32;
test(&a, &b, &result);
printf("%d + %d = %d\n", a, b, result);
return 0;
}
#include <stdio.h>
void test(a, b, c)
int *a;
int *b;
int *c;
{
*c = *a + *b;
}
int main(void)
{
auto register int a;
auto register int b;
auto register int result;
a = 10;
b = 32;
test(&a, &b, &result);
printf("%d + %d = %d\n", a, b, result);
return 0;
}
851デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/20(金) 12:43:18.91ID:XMzxe3/+0 ネスティングが浅い記述しか書かない奴にとってはどうでも良い案件なんですよ
技術計算を多用するコード例だとネスティングちゃんとしないと分けがわからなくなる
技術計算を多用するコード例だとネスティングちゃんとしないと分けがわからなくなる
852デフォルトの名無しさん (アウーイモ MM89-3GPW)
2017/10/20(金) 17:02:28.07ID:Hcn/q6HeM なんで配列の要素数って省略してもいいのですか?
853デフォルトの名無しさん (ワッチョイ a593-+4Iz)
2017/10/20(金) 17:49:45.76ID:vESwnO6R0 >>852 どの場面での話かな?
854デフォルトの名無しさん (ワッチョイ a623-0GSP)
2017/10/20(金) 17:51:51.23ID:w9jbL0YF0855デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/20(金) 17:57:17.39ID:7oD3lqB2p 配列は何次元でも扱える代わりに中身の管理は利用者に一任されたんだ。
856デフォルトの名無しさん (アウーイモ MM89-3GPW)
2017/10/20(金) 18:16:01.46ID:Hcn/q6HeM857デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/20(金) 18:42:47.35ID:3KJGg1dF6 >>856
初期化無しの宣言とか?
初期化無しの宣言とか?
858デフォルトの名無しさん (ワッチョイ 1a87-dU7J)
2017/10/20(金) 20:01:48.14ID:l11teSHI0859デフォルトの名無しさん (ワッチョイ 559f-0GSP)
2017/10/21(土) 02:37:55.69ID:xu+p9cdr0860デフォルトの名無しさん (ワッチョイ a593-+4Iz)
2017/10/21(土) 07:38:47.06ID:KIdTQfIK0 >>850 すごく… 古くさいです…
それはともかく register 宣言した変数は
アドレス取ろうとした時点でコンパイルエラーじゃなかったかな?
あと俺の環境では auto と register の同時指定がダメと言われる。
古いコンパイラだとどっちも許されるんだっけ。
それはともかく register 宣言した変数は
アドレス取ろうとした時点でコンパイルエラーじゃなかったかな?
あと俺の環境では auto と register の同時指定がダメと言われる。
古いコンパイラだとどっちも許されるんだっけ。
861デフォルトの名無しさん (ワッチョイ 317f-0GSP)
2017/10/21(土) 08:06:44.87ID:Q5TWqxQz0 実装は知らんが、言語仕様だと昔からstorage classの指定は1つだけ
862デフォルトの名無しさん (ワッチョイ 4e8a-JMxd)
2017/10/21(土) 08:49:05.01ID:TZDyO3Kt0 registerは可能ならばレジスタに割り当てると言う意味なので、アドレス演算子を使えばレジスタに割り当てられない
利用可能なレジスタ数を超えてregisterが使われうる可能性を考えれば明らか
autoとも併用できないし、半可通としか言いようがない
利用可能なレジスタ数を超えてregisterが使われうる可能性を考えれば明らか
autoとも併用できないし、半可通としか言いようがない
863デフォルトの名無しさん (ブーイモ MM71-Jp9u)
2017/10/21(土) 09:07:38.36ID:1UmE9CdHM >>862
それC++限定じゃね?
それC++限定じゃね?
864デフォルトの名無しさん (ワッチョイ 4e8a-JMxd)
2017/10/21(土) 09:44:36.79ID:TZDyO3Kt0 >>863
言いがかりをつけたいなら「規格書のxxにこう書いてある」と調べてからつけろ
言いがかりをつけたいなら「規格書のxxにこう書いてある」と調べてからつけろ
865デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 09:55:57.60ID:fkuXV6f/0 C++のautoは別の話
866デフォルトの名無しさん (ブーイモ MM71-Jp9u)
2017/10/21(土) 10:41:15.21ID:1UmE9CdHM867デフォルトの名無しさん (ワッチョイ 7ad2-9nkm)
2017/10/21(土) 10:46:45.41ID:KlHNvq3I0 仕事で5年くらいMATLABやってたけど来月からC言語やらなあかん
難しそうで、もうイヤイヤ期よ
C なんて10年くらい前に大学の講義でチョロチョロってやっただけ
応援メッセージ待ってます!
(´;ω;`)
難しそうで、もうイヤイヤ期よ
C なんて10年くらい前に大学の講義でチョロチョロってやっただけ
応援メッセージ待ってます!
(´;ω;`)
868デフォルトの名無しさん (ワッチョイ 6dc3-Ja3g)
2017/10/21(土) 10:51:19.46ID:sVexF7NP0 がんぱれ
869デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 11:33:55.75ID:fkuXV6f/0870デフォルトの名無しさん (ワッチョイ 317f-0GSP)
2017/10/21(土) 11:38:57.68ID:Q5TWqxQz0 >>864
規格書の
6.5.3.2 Address and indirection operators
に
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.
こう書いてある
規格書の
6.5.3.2 Address and indirection operators
に
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.
こう書いてある
871デフォルトの名無しさん (ワッチョイ 317f-0GSP)
2017/10/21(土) 11:53:08.06ID:Q5TWqxQz0 K&Rの1stでも
the address-of operator & cannot be applied to them.
って書いてあるよ
the address-of operator & cannot be applied to them.
って書いてあるよ
872デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/21(土) 12:04:46.13ID:VJktQUPlp 俺にはレジスタ変数に割り当てた変数を関数のアドレス渡し引数にする意図が想像できない。
そんなにオーバーヘッド気になるなら、グローバル変数でレジスタ変数宣言してしまえって思う。
そんなにオーバーヘッド気になるなら、グローバル変数でレジスタ変数宣言してしまえって思う。
873デフォルトの名無しさん (ワッチョイ 317f-0GSP)
2017/10/21(土) 12:12:52.67ID:Q5TWqxQz0 >>872
外部宣言にregisterは使えないぞ
外部宣言にregisterは使えないぞ
874デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/21(土) 12:18:48.95ID:Hb3Ud/Wn0 オーバーヘッド気にしてたらコンテキストスイッチングとかどうすんだ?
875デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/21(土) 12:43:51.25ID:VJktQUPlp じゃあそんなクリティカルな問題無い様に、関数化する事自体を諦めた方がいいのでは?
876デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/21(土) 12:46:37.26ID:VJktQUPlp ヘッダーファイルにインライン宣言した関数を記述してしまうって解決方法もあるよな?
877デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 12:55:25.34ID:fkuXV6f/0 >>873
さすがにネタだろ
さすがにネタだろ
878デフォルトの名無しさん (ワッチョイ 7ad2-9nkm)
2017/10/21(土) 18:44:07.64ID:KlHNvq3I0879デフォルトの名無しさん (ワッチョイ 7ab3-RYXs)
2017/10/21(土) 20:20:57.18ID:fkuXV6f/0 >>878
register関係は爺の昔話だから無視していい
register関係は爺の昔話だから無視していい
880デフォルトの名無しさん (ワッチョイ f9d6-1OZr)
2017/10/21(土) 20:38:07.37ID:LO7dvffl0 グローバル変数をregister指定できたり楽しかったなあ
881デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/21(土) 20:48:45.74ID:S+Fuo4jD0 いや、指定しても実際効果あるか無いかってだけだからなぁ
882デフォルトの名無しさん (ワイモマー MM89-f3zB)
2017/10/21(土) 21:14:54.66ID:sahtjmhqM >>878
ネットのプログラミング自習動画見てみたら?
ネットのプログラミング自習動画見てみたら?
883デフォルトの名無しさん (ワッチョイ cee7-gNqP)
2017/10/21(土) 23:00:30.68ID:qfiVibk/0 10年前にC言語覚えたなC#もないopenGL作る時も基礎が出来てない白紙から打ち込んでたから凄い大変だったのを思い出したわ
884デフォルトの名無しさん (ワッチョイ a593-+4Iz)
2017/10/22(日) 05:28:16.50ID:m20yJ7cw0 register宣言とアドレス演算子の話だけど、
Cではエラー、C++だとアドレスを取れる(register指定は無視される)、みたいね。
望洋さんのファックとWikipediaのC++に出てたわ。
…実は逆に覚えててね。
レジスタに割り当てた変数の変数のアドレスが欲しいってのは矛盾してるから、
C++は厳格にチェックするかと。
Cではエラー、C++だとアドレスを取れる(register指定は無視される)、みたいね。
望洋さんのファックとWikipediaのC++に出てたわ。
…実は逆に覚えててね。
レジスタに割り当てた変数の変数のアドレスが欲しいってのは矛盾してるから、
C++は厳格にチェックするかと。
885名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a127-1OZr)
2017/10/22(日) 07:11:33.28ID:dj2Vz85u0886名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ fa12-bcII)
2017/10/22(日) 11:32:38.17ID:r2h/pPG10 レジスタってメモリ番地をもってるのか?
持ってない番外地なんじゃねえの?
持ってない番外地なんじゃねえの?
887名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ daf9-3CFD)
2017/10/22(日) 11:38:07.26ID:rLWliBun0 >>886
そうだよ。そこは誰も疑問に思ってない。
そうだよ。そこは誰も疑問に思ってない。
888名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a87-DwBb)
2017/10/22(日) 12:31:48.51ID:NaoIEEjs0 世の中には、レジスタがメモリーの先頭と同じ位置にマッピングされてるCPUだってあるけどな。
889名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 3a23-0GSP)
2017/10/22(日) 13:39:13.59ID:f5TzHp7R0 質問です。ポインタ変数を用いてキーボードから入力された5つの整数を配列xに保存し、その要素の列挙と合計値を求めるプログラムを作ったのですが、
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[4],sum=0,i,j;
p=&x[0];
for(i=0;i<=4;i++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d",p);
sum=sum+*p; }
for(j=0;j<=4;j++){
printf("%d ",*(p+j));} /*配列の要素を列挙*/
printf("\n和=%d",sum); /*配列の要素の和*/
return 0;}
で、結果が
1つ目の整数を入力してください 1
2つ目の整数を入力してください 2
3つ目の整数を入力してください 3
4つ目の整数を入力してください 4
5つ目の整数を入力してください 5
5 4200864 6422368 4200955 6422288
和=15
となり、要素の列挙がうまくいかないので対策を教えていただきたいです。
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[4],sum=0,i,j;
p=&x[0];
for(i=0;i<=4;i++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d",p);
sum=sum+*p; }
for(j=0;j<=4;j++){
printf("%d ",*(p+j));} /*配列の要素を列挙*/
printf("\n和=%d",sum); /*配列の要素の和*/
return 0;}
で、結果が
1つ目の整数を入力してください 1
2つ目の整数を入力してください 2
3つ目の整数を入力してください 3
4つ目の整数を入力してください 4
5つ目の整数を入力してください 5
5 4200864 6422368 4200955 6422288
和=15
となり、要素の列挙がうまくいかないので対策を教えていただきたいです。
890名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7ad2-eNpY)
2017/10/22(日) 13:49:53.88ID:rI45lLhS0 そりゃ最初に p に代入した同じ入れ物に入力値を保存してるからね。
++p とかしてみたら?
++p とかしてみたら?
891名無しさん@そうだ選挙に行こう! Go to vote! (ササクッテロラ Sp85-DwBb)
2017/10/22(日) 13:55:57.90ID:pqhboyRRp 素直に配列使え。
892名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a593-+4Iz)
2017/10/22(日) 14:15:34.40ID:m20yJ7cw0 scanf() での値の格納先 (== sumに加える値の参照先) である p を
初期化時の &x[0] のまま進めてないから入力した値が上書きされるんだよ。
もちろん x[1], x[2], ... には値が入らない。
質問の趣旨と関係ない部分を指摘して混乱させるつもりはないんだけど、
配列 x[] の要素数が足りないのがオジさん気になるなぁ。
初期化時の &x[0] のまま進めてないから入力した値が上書きされるんだよ。
もちろん x[1], x[2], ... には値が入らない。
質問の趣旨と関係ない部分を指摘して混乱させるつもりはないんだけど、
配列 x[] の要素数が足りないのがオジさん気になるなぁ。
893名無しさん@そうだ選挙に行こう! Go to vote! (アウアウウー Sa89-PVu7)
2017/10/22(日) 15:12:18.96ID:2+N8xzsVa >>889
既に>>890-892が指摘済みだけど
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[5],sum=0,i,j; /* x[5] */
p = x;
for(i = 0;i <= 4; i++, p++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d", p);
sum += *p;
}
p = x; /* ポインタの参照位置を配列先頭へ */
for(j = 0; j <= 4; j++){
printf("x[%d]=%d, ", j, *(p+j) );
}/*配列の要素を列挙*/
printf("\n和=%d\n ",sum); /*配列の要素の和*/
return 0;
}
既に>>890-892が指摘済みだけど
#include <stdio.h>
#include <stdlib.h>
int main (void){
int *p,x[5],sum=0,i,j; /* x[5] */
p = x;
for(i = 0;i <= 4; i++, p++){
printf("%dつ目の整数を入力してください ",i+1);
scanf("%d", p);
sum += *p;
}
p = x; /* ポインタの参照位置を配列先頭へ */
for(j = 0; j <= 4; j++){
printf("x[%d]=%d, ", j, *(p+j) );
}/*配列の要素を列挙*/
printf("\n和=%d\n ",sum); /*配列の要素の和*/
return 0;
}
894名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 3a23-0GSP)
2017/10/22(日) 15:20:05.53ID:f5TzHp7R0 大学で勉強し始めたばかりなので全然で…
みなさんありがとうございました。
みなさんありがとうございました。
895名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a87-DwBb)
2017/10/22(日) 15:27:37.67ID:NaoIEEjs0 まあ、なんでポインタに拘るのかわからんが、
つうか、書きと読みでアクセス方法は合わせた方がいいと思うが、
動きゃいいかw
つうか、書きと読みでアクセス方法は合わせた方がいいと思うが、
動きゃいいかw
896名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ daf9-3CFD)
2017/10/22(日) 15:34:28.08ID:rLWliBun0 学習をし始めた頃は敢えてポインタを使っていろんな書き方を試してみるのもいいと思う。
数をこなすうちに自然とよい書き方に気づくと思う。
数をこなすうちに自然とよい書き方に気づくと思う。
897名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ cee7-h3yZ)
2017/10/22(日) 16:41:26.75ID:iiKpFSsu0 起動の度に外部ファイルで変数の初期値を変えて起動したいんだけどどうすんの?
898名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a58c-REa2)
2017/10/22(日) 16:53:41.42ID:utzmEkdP0 外部ファイルを読んで変数に代入する
899名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ cee7-h3yZ)
2017/10/22(日) 17:06:30.45ID:iiKpFSsu0 外部ファイルに変数名と初期値を書いておきたい
900名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 6dc3-Ja3g)
2017/10/22(日) 17:11:49.57ID:Qdw/5tAf0 環境依存だし基本的に無理
バッチなりシェルスクリプトに記述しといてコマンドライン引数で渡す方が建設的
バッチなりシェルスクリプトに記述しといてコマンドライン引数で渡す方が建設的
901名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a593-+4Iz)
2017/10/22(日) 18:05:00.75ID:m20yJ7cw0 ソースに書いてない変数を実行時に導入したいってのとは違うんでないか?
あらかじめ外部ファイルで値を設定できる変数は決まっていて、
要するにリソースファイルみたいな使い方をしたいのかも知れん。
fscanf(fp, "%s=%d\n", varname, &varval);
if (strcmp(varname, "width") == 0) {
width = varval;
} else if (strcmp(varname, "height") == 0) {
height = varval;
} else {
fprintf(stderr, "cannot use variable '%s'\n", varname);
}
みたいな感じ?
この場で書いてるから洗練されてないし、動くか怪しいけど。
あらかじめ外部ファイルで値を設定できる変数は決まっていて、
要するにリソースファイルみたいな使い方をしたいのかも知れん。
fscanf(fp, "%s=%d\n", varname, &varval);
if (strcmp(varname, "width") == 0) {
width = varval;
} else if (strcmp(varname, "height") == 0) {
height = varval;
} else {
fprintf(stderr, "cannot use variable '%s'\n", varname);
}
みたいな感じ?
この場で書いてるから洗練されてないし、動くか怪しいけど。
902名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7a87-DwBb)
2017/10/22(日) 18:08:18.57ID:NaoIEEjs0 人が読み書きしない前提なら、構造体の領域をまるまんま読み書きしてしまえば楽だぜ。
903名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 5581-/wYC)
2017/10/22(日) 18:09:51.31ID:4HKeVMJe0 動作時に殆ど変えない値ならファイルで良いかもしれないが
起動の都度値を変化させたいなら、コマンドラインの方が良いぞ
起動の都度値を変化させたいなら、コマンドラインの方が良いぞ
904901 (ワッチョイ a593-+4Iz)
2017/10/22(日) 18:29:59.97ID:m20yJ7cw0 >>901 で使った「リソースファイル」って言葉は曖昧だったね。
「設定ファイル」の方が通りがよかったかも。
皆さん文脈から分かってくれると思うけど、
VisualStudio なんかで別の意味で使う言葉だし。
「設定ファイル」の方が通りがよかったかも。
皆さん文脈から分かってくれると思うけど、
VisualStudio なんかで別の意味で使う言葉だし。
905名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 812d-OJdz)
2017/10/22(日) 18:44:14.78ID:IdeA6XVs0 「鶏を割くに焉んぞ牛刀を用いん」とも言えるけど
json,yaml,tomlなんかの読み込みライブラリ使うとか
Lua,Pythonを組み込むとかも一応回答としてはありかもね
json,yaml,tomlなんかの読み込みライブラリ使うとか
Lua,Pythonを組み込むとかも一応回答としてはありかもね
906デフォルトの名無しさん (スプッッ Sd7a-+59V)
2017/10/22(日) 20:27:33.99ID:Cn2ZDyn4d907デフォルトの名無しさん (ワッチョイ 7a8a-WXi2)
2017/10/22(日) 20:32:16.01ID:EROQgIiX0908デフォルトの名無しさん (ワッチョイ a108-1OZr)
2017/10/22(日) 21:19:51.70ID:bXoG3HvV0 メインフレームでDIAGNOSEを使うときなんか
WCSのアドレスを指定とかね
WCSのアドレスを指定とかね
909デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/23(月) 01:07:16.21ID:mBA7Qm4F0 スタック変数いらねえな
グローバル変数で性能追求しようぜ
グローバル変数で性能追求しようぜ
910デフォルトの名無しさん (ワッチョイ a58c-REa2)
2017/10/23(月) 01:22:42.10ID:gdiUlDLR0 6502のゼロページが全部レジスタだと思い込んでるような記述がたまにあるけど
普通にメモリだよ
普通にメモリだよ
911デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/23(月) 01:37:37.69ID:mBA7Qm4F0 オペランドを8bitに限定してコード効率上げるってのがゼロページの発想でしょ
メモリ素子が高価な時代の涙ぐましい仕組みのひとつ
メモリ素子が高価な時代の涙ぐましい仕組みのひとつ
912デフォルトの名無しさん (ワッチョイ 5581-/wYC)
2017/10/23(月) 01:46:50.56ID:EhEnOqp90 CPUの一時キャッシュメモリをレジスタ変数に割り当てる方が速いんじゃないか?
913デフォルトの名無しさん (ワッチョイ a593-+4Iz)
2017/10/23(月) 05:14:49.57ID:u4PJ0rqa0914デフォルトの名無しさん (ワッチョイ ddb3-0GSP)
2017/10/23(月) 05:45:57.83ID:iFI38Dlw0 %%%%1000%%%%
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
000-[HUM%58*73.1\%]/2I/3NM/61.3SNMK%?%3%51.22222222222221%
001-[[[%6/4$17.6135412α3]]]]+DOM+SIL+7%
002-UML7%[61.2[31.5[!%32∂LM17.36%!16.3!%<<<%!HSTOL7%!Q!S!=3m=<2TOL<3Q9A<2.1GHz%,DOK,HAOARA,
003-[[[HEMLOT47[<\41.2%Q,===>[MLS<DPNO<\2.3>#ESOLA!5%!3MLA!>LTOSA>7TONSA>%>%end
915デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 17:06:19.86ID:WoZMAj8B0 ルネサスRXなんかもレジスタがメモリマップされてるな
アクセス禁止領域だけど
アクセス禁止領域だけど
916デフォルトの名無しさん (フリッテル MM5e-q5Ly)
2017/10/23(月) 19:08:39.57ID:Ob3tZ8JSM SFRと汎用レジスタの区別が出来ない奴
917デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 19:25:26.97ID:nagTo3YF0 >>915
そこって、デバッガがCPUレジスタ参照する為の窓だから、プログラムがその領域指すと、デバッグが困難になるから禁止してるんじゃね?
そこって、デバッガがCPUレジスタ参照する為の窓だから、プログラムがその領域指すと、デバッグが困難になるから禁止してるんじゃね?
918デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 19:29:22.87ID:nagTo3YF0 デバッガー専用の作業メモリー領域もプログラムから使用禁止だったりするだろ?
919デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/23(月) 19:30:14.37ID:HemzWECS0 レクサスRXに見えた
920デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 20:21:25.70ID:WoZMAj8B0 >>917
その通りだと思うよ
その通りだと思うよ
921デフォルトの名無しさん (ワッチョイ 19a5-FNU/)
2017/10/23(月) 20:22:52.11ID:WoZMAj8B0 >>916
sfrをアクセス禁止領域に置いてどーすんだよw
sfrをアクセス禁止領域に置いてどーすんだよw
922デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 20:30:23.77ID:nagTo3YF0923デフォルトの名無しさん (ワッチョイ 7a87-DwBb)
2017/10/23(月) 20:37:44.96ID:nagTo3YF0 あ、レス間違えたわw
924デフォルトの名無しさん (ワッチョイ ce9f-ZHsf)
2017/10/24(火) 03:02:06.36ID:75BFZUbG0 int i=1,n
n=i/2*2
n=0になる理由教えてください
n=i/2*2
n=0になる理由教えてください
925デフォルトの名無しさん (ワッチョイ a568-OJdz)
2017/10/24(火) 03:50:48.19ID:senjN+vb0 int型は小数が扱えないので0方向に丸められる
926デフォルトの名無しさん (ワッチョイ fa7c-OFe0)
2017/10/24(火) 05:57:30.66ID:2rmlfNW20927デフォルトの名無しさん (ワッチョイ 6d76-tDmH)
2017/10/24(火) 06:48:50.75ID:kt50Dt6N0 負の除算の丸め方は処理系依存
928デフォルトの名無しさん (ワッチョイ c5b3-U5aN)
2017/10/24(火) 07:33:37.46ID:VjHIGh6G0 左結合で i/2 の後に *2 が処理される
整数どおしの除算なので丸めが発生
丸めた値に 乗算が行われる
整数どおしの除算なので丸めが発生
丸めた値に 乗算が行われる
929デフォルトの名無しさん (ワッチョイ ce9f-ZHsf)
2017/10/24(火) 07:45:07.35ID:75BFZUbG0 おおおお!
なるほど!ありがとうございます!
なるほど!ありがとうございます!
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★2 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★7 [蚤の市★]
- 最新版Z級クソ映画ランキングが決定! [牛丼★]
- 【STARTO ENTERTAINMENT】SUPER EIGHTの横山裕、フジ『ドッキリGP』ロケで全治2ヶ月の重傷 [Ailuropoda melanoleuca★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★2 [蚤の市★]
- 公用車カーナビのNHK受信料「全額免除を」 千葉市議会、国に制度創設求める意見書可決 [少考さん★]
- 【朗報】南鳥島のレアアース、中国産の「20倍の純度」青山繁晴氏「日本は資源大国」日本復活のファンファーレが鳴り響く! [673057929]
- 高市応援団の筆頭格「高市政権が誕生したのは12月1日だ!!!」 [931948549]
- 愛国者「釘を使わない日本独自の伝統工法スゴイ!」X民「それ中国起源ですよ」→批判殺到 [834922174]
- 中国、南京事件に言及。さあ、ネトウヨ、もう後がないぞ [805596214]
- 【衝撃】これを折った・・・・・・・・・・・・ [793051416]
- 👊😅👊三☁😶‍🌫三⛅🏡
