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
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ 8a6f-bDrV)
2017/08/10(木) 20:21:23.44ID:hEocmkh50874デフォルトの名無しさん (ワッチョイ 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 おおおお!
なるほど!ありがとうございます!
なるほど!ありがとうございます!
930デフォルトの名無しさん (ワッチョイ c5eb-cn1a)
2017/10/24(火) 12:07:36.73ID:SPAXueit0 int func(int) は、引数が int 型で、int 型の値を返す関数
int func(void) は、引数が無しで、int 型の値を返す関数
というのは分かったのですが
int func() のように () の中が空の場合は、どうゆう意味になりますか?
int func(void) と同じ?
int func(void) は、引数が無しで、int 型の値を返す関数
というのは分かったのですが
int func() のように () の中が空の場合は、どうゆう意味になりますか?
int func(void) と同じ?
931デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/24(火) 12:12:42.21ID:b8RDVE7X6932デフォルトの名無しさん (ワッチョイ c5eb-cn1a)
2017/10/24(火) 12:24:20.33ID:SPAXueit0 わかりました、ありがとうございます
933デフォルトの名無しさん (ワッチョイ 4e8a-JMxd)
2017/10/24(火) 12:51:09.78ID:k+hUXLmG0 >>931
包茎手術じゃなくて脱毛で良かったな
包茎手術じゃなくて脱毛で良かったな
934デフォルトの名無しさん (ワッチョイ 8dd2-U5aN)
2017/10/24(火) 13:44:26.08ID:/a/Ldfbw0 DMAでも使うならともかく
レジスタをメモリ空間にマッピングする利点なんてないだろ
レジスタをメモリ空間にマッピングする利点なんてないだろ
935デフォルトの名無しさん (ワントンキン MM8a-WXi2)
2017/10/24(火) 13:58:10.44ID:48RRVnNoM PCI以降DMAでデータ転送なんてのは無い。
あるのはバースト転送モードだ。
当然、転送に必要なレジスタはメモリにマッピングされている。
あるのはバースト転送モードだ。
当然、転送に必要なレジスタはメモリにマッピングされている。
936デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/24(火) 14:14:56.50ID:gWGoT/ywp >>934
むしろデメリットさえあるな。だからデバッガが使う以外は利用されてないだろ?
むしろデメリットさえあるな。だからデバッガが使う以外は利用されてないだろ?
937デフォルトの名無しさん (ワッチョイ cee7-h3yZ)
2017/10/24(火) 14:24:36.56ID:fybDUnFS0 ふふ、トヨ〇の要求。今は知らん。
938デフォルトの名無しさん (ガックシ 06ee-G561)
2017/10/24(火) 16:20:50.45ID:b8RDVE7X6 まだやってたのかよレジスタ
939デフォルトの名無しさん (ササクッテロラ Sp85-DwBb)
2017/10/24(火) 18:07:58.27ID:gWGoT/ywp 内部レジスタと外部レジスタは意味がまるっきり違うんだがなぁ
940デフォルトの名無しさん (ワッチョイ 5581-/wYC)
2017/10/24(火) 18:48:56.59ID:ffssQfLj0 >>939
二重帳簿やっているように聞こえる
二重帳簿やっているように聞こえる
941デフォルトの名無しさん (ワッチョイ 559f-0GSP)
2017/10/25(水) 01:31:11.21ID:a9TiLHl10 >>930
同じなんだけどコンパイル時の引数チェックをしなくなる。
int func(void) の関数に対して func(123) みたいにして呼ぶとコンパイルエラーだが
int func() の関数に対して func(123) で呼び出す記述があってもエラーにならない。
なんでこうなっているのかというと、昔のCにはvoidがなくて引数なしの関数は
int func() のように書くしか方法がなく、尚且つ昔のC言語は引数のチェックを
していなかったため。つまり過去のC言語ソースをコンパイルできるようにする
ためにこのような記述が残されている。今となっては余程の事がない限りこんな
書き方はしない方が良い。バグの元だ。
同じなんだけどコンパイル時の引数チェックをしなくなる。
int func(void) の関数に対して func(123) みたいにして呼ぶとコンパイルエラーだが
int func() の関数に対して func(123) で呼び出す記述があってもエラーにならない。
なんでこうなっているのかというと、昔のCにはvoidがなくて引数なしの関数は
int func() のように書くしか方法がなく、尚且つ昔のC言語は引数のチェックを
していなかったため。つまり過去のC言語ソースをコンパイルできるようにする
ためにこのような記述が残されている。今となっては余程の事がない限りこんな
書き方はしない方が良い。バグの元だ。
942デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 15:47:29.67ID:Ls3qnFv30 ヤフー知恵袋って色んな奴がC言語勉強してるやつがいるな、素人みたいな質問やら専門的な質問や大学の問題の質問やらのプログラミング質問が
943デフォルトの名無しさん (ワッチョイ 51c9-aYWJ)
2017/10/25(水) 17:13:54.92ID:3egWGIK90944デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 18:14:39.48ID:2J1yyAIT0945デフォルトの名無しさん (ワッチョイ 7a8a-WXi2)
2017/10/25(水) 18:15:57.84ID:16XMr+7o0 DDOS攻撃してサイト毎潰す
946デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 18:20:37.33ID:Ls3qnFv30 >>944
まず何のプログラミングか言わなきゃダメでしょうみんなプロだから挙動で読めちゃう人いるけどさ
まず何のプログラミングか言わなきゃダメでしょうみんなプロだから挙動で読めちゃう人いるけどさ
947デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/25(水) 18:28:36.51ID:Ho4Id2OA0 >>944
printfでNULL->valueをしてるから
printfでNULL->valueをしてるから
948デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 18:35:07.38ID:2J1yyAIT0949デフォルトの名無しさん (ワッチョイ 5581-3lto)
2017/10/25(水) 19:06:17.58ID:N2zX2Cru0 void hoge(data_t **data, int value) {
*data = NULL;
*data = malloc(sizeof(data_t));
if (data == NULL) return;
(*data)->value = value;
}
呼び出しを
hoge(&data,10);
これではどうか
*data = NULL;
*data = malloc(sizeof(data_t));
if (data == NULL) return;
(*data)->value = value;
}
呼び出しを
hoge(&data,10);
これではどうか
950デフォルトの名無しさん (ワッチョイ 5581-3lto)
2017/10/25(水) 19:07:10.40ID:N2zX2Cru0 if (*data == NULL) return;
ここ間違えた、訂正
ここ間違えた、訂正
951デフォルトの名無しさん (ワッチョイ d681-0GSP)
2017/10/25(水) 19:12:01.89ID:2J1yyAIT0952デフォルトの名無しさん (ワッチョイ c575-G561)
2017/10/25(水) 19:16:50.46ID:Ho4Id2OA0 そういうことか
全然分からんかった
引数に受け渡されたポインタ変数のコピーに新しく確保したメモリのアドレス入れても呼び出し元のポインタ変数はなんも変化しないのか
全然分からんかった
引数に受け渡されたポインタ変数のコピーに新しく確保したメモリのアドレス入れても呼び出し元のポインタ変数はなんも変化しないのか
953デフォルトの名無しさん (ワッチョイ c5b3-VJ/D)
2017/10/25(水) 19:21:03.77ID:BohOgQqE0 引数で int の変数を書き換えても 呼び出し元には伝わらない それの延長線
int を data_t* に読み替えれば同じ理屈よ
int を data_t* に読み替えれば同じ理屈よ
954デフォルトの名無しさん (ワッチョイ cee7-LaKm)
2017/10/25(水) 20:39:40.86ID:Ls3qnFv30 俺の頭じゃあ理解できなかったわアロー関数は苦手だ、ここには天才がやっぱいるわ
955デフォルトの名無しさん (ワッチョイ d6e8-bcII)
2017/10/25(水) 22:59:11.01ID:SHE9E59e0 この程度でプロとか天才とかw レベル低っ
956デフォルトの名無しさん (ワッチョイ 7ad2-eNpY)
2017/10/25(水) 23:31:22.55ID:A9sEwxck0 追い詰められてる時って、ちょっとしたことを見落としたりしがちだし。
そういうときにちょっとしたつまらない問題点を指摘してくれる人が神様に思えることはある。
本当に何でこれに気づかない?って問題に延々と気づかないことあるから。
そういうときにちょっとしたつまらない問題点を指摘してくれる人が神様に思えることはある。
本当に何でこれに気づかない?って問題に延々と気づかないことあるから。
957デフォルトの名無しさん (ワッチョイ 7181-/MqV)
2017/10/26(木) 01:05:20.57ID:WmOJzpQL0 実務の世界だと、開発リーダーにとっては、この程度はさらさらと書いて欲しいと思うだろうな
この辺の考え方が理解できてないと、構造体を使ったリスト構造、木構造が作れないと思う
この辺の考え方が理解できてないと、構造体を使ったリスト構造、木構造が作れないと思う
958デフォルトの名無しさん (ワッチョイ 7102-rVGZ)
2017/10/26(木) 01:22:11.08ID:FPgm8C1h0 急に語り出したぞ、おい
959デフォルトの名無しさん (ワッチョイ 719f-a4mA)
2017/10/26(木) 03:22:11.49ID:kwyo2eDl0 リスト構造、木構造という言葉がわからなかったのかな?
960デフォルトの名無しさん (ワッチョイ 1b11-mlZ6)
2017/10/26(木) 03:35:02.17ID:ByFyiJTd0 分からなくてもググれば速攻定義出ますがな
961デフォルトの名無しさん (ワッチョイ 9193-cGPg)
2017/10/26(木) 06:24:41.35ID:8UQnYlEC0962デフォルトの名無しさん (ガックシ 068b-rVGZ)
2017/10/26(木) 10:26:24.17ID:Z8IKw2VS6 リスト構造木構造とか理系大学の情報系科目で誰でもやるがな
こんなところ見てる奴が知らんわけないだらアホ
こんなところ見てる奴が知らんわけないだらアホ
963デフォルトの名無しさん (ササクッテロラ Sp9d-aRZk)
2017/10/26(木) 10:46:18.77ID:DmfMCHFwp リストもツリーも基本の構造は一緒だろ。
ただ、鎖ね繋がってる数が違うから、
扱いが違うだけでな。
ただ、鎖ね繋がってる数が違うから、
扱いが違うだけでな。
964デフォルトの名無しさん (アウアウカー Saed-Lg7W)
2017/10/26(木) 12:26:11.84ID:nuX2FTeTa 文系経済学部ですわ
965デフォルトの名無しさん (ドコグロ MM3d-DDuF)
2017/10/26(木) 12:46:06.22ID:oyaJ8gC3M966デフォルトの名無しさん (ガックシ 068b-rVGZ)
2017/10/26(木) 12:51:34.13ID:jbwuNtau6 >>965
リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ
リスト構造とか知ってるからってポインタ受け渡しのトリックに気付くとは限らんだろ
967デフォルトの名無しさん (ワッチョイ ebea-ZNPd)
2017/10/26(木) 13:41:10.56ID:VaLFaSbf0 怪しくなったら戻り値で返せ
968デフォルトの名無しさん (ブーイモ MMc5-nyI1)
2017/10/26(木) 14:50:55.37ID:ujDNQjK/M そういうときに限って二つ返したくなる
969デフォルトの名無しさん (ワッチョイ 1be7-J/p5)
2017/10/26(木) 18:29:14.01ID:l+WAoJAx0 自分の知ってる関数解ってる宣言の仕方ならわかるけどさ解らない奴使ってたらもう変数が動いてるかわからんだろう
そうなったらもう謎でコードなんか読めないだろ?
そうなったらもう謎でコードなんか読めないだろ?
970デフォルトの名無しさん (ワッチョイ ebe8-nu9H)
2017/10/26(木) 18:40:00.02ID:6866r+hk0 んなこたぁ、ない
971デフォルトの名無しさん (ワッチョイ d1b3-ZNPd)
2017/10/26(木) 18:44:09.81ID:AI1MxGuX0 引数の書き戻し系は 渡すときに値を必要としてるのかどうかは仕様次第なので 少し気を使う
972デフォルトの名無しさん (ササクッテロラ Sp9d-jmG0)
2017/10/26(木) 20:03:01.42ID:DmfMCHFwp それより、そのアドレスはアクセス権のある場所を指してるんだよな?
973デフォルトの名無しさん (ドコグロ MM3d-DDuF)
2017/10/26(木) 21:41:04.91ID:oyaJ8gC3Mレス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 自民・麻生太郎副総裁 石破政権の1年は「どよーん」 高市政権発足で「何となく明るくなった」「世の中のことが決まり動いている」★2 [Hitzeschleier★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- ゆたぼん 二重手術を報告「めちゃくちゃ気に入っています」 [muffin★]
- 【山形】クマ駆除で誤射した猟友会隊員に町が1663万円請求へ...弾当たり男性大けが2023年 小国町 [nita★]
- トランプ、G7に代わるcore 5を発表 [805596214]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
- 木曜日のんなっしょい❗(・o・🍬)仕放題スレ🏡
- 【悲報】日本共産党、ツイッター速報にブチギレ法的措置WWWWWWWWWWWWWWWWWWWWWWWWWWWW [935793931]
- 【悲報】麻生太郎さん、オムツをしていた。晋さん…ここにいたんだね… [731544683]
