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/
前スレ
C言語なら俺に聞け 142
http://mevius.2ch.net/test/read.cgi/tech/1502364083/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 143
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ b375-rVGZ)
2017/10/27(金) 21:28:08.20ID:pAogLeJi0126デフォルトの名無しさん (ワッチョイ 4d08-S32u)
2017/11/03(金) 07:17:35.22ID:3SB+84d60127デフォルトの名無しさん (ワッチョイ 4193-ZDq4)
2017/11/03(金) 08:10:28.98ID:Ui3Q5cAp0128デフォルトの名無しさん (ワッチョイ 4287-XwAf)
2017/11/03(金) 11:50:36.80ID:exxwx2Ub0 そーゆーのって、C言語じゃなくて、ライブラリの仕様なんで、環境わからないと誰も答えられないよな。
129デフォルトの名無しさん (ワッチョイ 319f-1mNv)
2017/11/03(金) 12:27:14.54ID:1lWviljw0 プログラム中で扱う時はiconv()で変換しちゃうと楽だな。Windowsは知らんがOSが変換やってくれなかったっけ?忘れた。
130デフォルトの名無しさん (ワッチョイ 99b3-KOaZ)
2017/11/03(金) 16:53:04.29ID:kt+ZN5MJ0 #include <stdio.h>
int main(void)
{
int x, y, z;
scanf("%d", &x);
y = x;
for (x = x - 1;x > 1;x--) {
z = y % x;
if (z = 0) {
x = 0;
}
}
if (x = 0)
{
printf("入力値は素数ではありません\n");
}
else
{
printf("入力値は素数です\n");
}
fflush(stdin);
getchar();
return 0;
}
素数判定用のやつ作ったんだが動かない
問題点教えてください
int main(void)
{
int x, y, z;
scanf("%d", &x);
y = x;
for (x = x - 1;x > 1;x--) {
z = y % x;
if (z = 0) {
x = 0;
}
}
if (x = 0)
{
printf("入力値は素数ではありません\n");
}
else
{
printf("入力値は素数です\n");
}
fflush(stdin);
getchar();
return 0;
}
素数判定用のやつ作ったんだが動かない
問題点教えてください
131デフォルトの名無しさん (ワッチョイ 4287-XwAf)
2017/11/03(金) 16:58:25.19ID:exxwx2Ub0 さすがにネタだよな?
132デフォルトの名無しさん (ドコグロ MM61-ECNA)
2017/11/03(金) 17:06:46.06ID:pDgXQ2EkM fflush(stdin)は無意味
あとイコールが足りない
あとイコールが足りない
133デフォルトの名無しさん (ワッチョイ 2eea-8/j8)
2017/11/03(金) 17:09:14.02ID:q/3NCVak0 等しいかを比較するのは ==
if () の中であっても = は代入操作
× if (z = 0)
○ if (z == 0)
× if (x = 0)
○ if (x == 0)
if () の中であっても = は代入操作
× if (z = 0)
○ if (z == 0)
× if (x = 0)
○ if (x == 0)
134デフォルトの名無しさん (ワッチョイ 99b3-tWDu)
2017/11/03(金) 17:11:50.30ID:kt+ZN5MJ0 すいませんマジで==忘れてましたw
あとはif文でxの値に代入する数字を1にしたら直りました
やっぱ自分だけで考えてると基本なことにも忘れてしまいますねw
あとはif文でxの値に代入する数字を1にしたら直りました
やっぱ自分だけで考えてると基本なことにも忘れてしまいますねw
135デフォルトの名無しさん (ワッチョイ 4287-XwAf)
2017/11/03(金) 23:33:54.94ID:exxwx2Ub0 ネタじゃ無かったんかいw
136デフォルトの名無しさん (ワッチョイ 319f-dVlt)
2017/11/04(土) 00:31:06.07ID:Wr8YwoWe0 宿題かな?
137デフォルトの名無しさん (ワッチョイ e175-e3AS)
2017/11/04(土) 03:05:14.26ID:bSw/g7Kd0 おまえらバカにすることしか頭に無いのか
初心者ならこういうこともあるだろうに
初心者ならこういうこともあるだろうに
138デフォルトの名無しさん (ワッチョイ d2a1-Q/5A)
2017/11/04(土) 03:41:42.37ID:NciV8/1n0 警告オプションが必要だな
139デフォルトの名無しさん (ワンミングク MM92-5Y2u)
2017/11/04(土) 07:34:51.98ID:NNCD/Zi9M 嫌、「直しておきました」メッセージが必要だな
140デフォルトの名無しさん (ワイモマー MMa5-puHV)
2017/11/04(土) 10:16:02.36ID:t9DikZnoM 古代においては、(1 == y)としておけば、間違って(1 = y)とした時にコンパイルエラーで発覚する、という言い伝えが有った。
>
>#include <stdio.h>
>
>int main(void) {
> int x, y;
> scanf("%d", &x);
> y = x;
> while (x % (y -= 1))
> ;
> if (1 == y) {
> printf("入力値は素数です¥n");
> } else {
> printf("入力値は素数ではありません¥n");
> }
>
> return 0;
>}
>
>
>#include <stdio.h>
>
>int main(void) {
> int x, y;
> scanf("%d", &x);
> y = x;
> while (x % (y -= 1))
> ;
> if (1 == y) {
> printf("入力値は素数です¥n");
> } else {
> printf("入力値は素数ではありません¥n");
> }
>
> return 0;
>}
>
141デフォルトの名無しさん (ワッチョイ 319f-1mNv)
2017/11/04(土) 13:31:32.96ID:3FaXzC+X0 >>140
あーそうだな。今でもたまにそう書いてあるソースを見かける。
いつも自分ではやってないので違和感があるw
まあでもCみたいな言語だと本当はそう書いておいた方が良いんだろうけどね。
そう言えばこの頃のコンパイラはifで代入だけしてるようなのは見つけて警告出してくれるな。
あーそうだな。今でもたまにそう書いてあるソースを見かける。
いつも自分ではやってないので違和感があるw
まあでもCみたいな言語だと本当はそう書いておいた方が良いんだろうけどね。
そう言えばこの頃のコンパイラはifで代入だけしてるようなのは見つけて警告出してくれるな。
142デフォルトの名無しさん (アウアウカー Sa69-r1EQ)
2017/11/04(土) 13:39:20.69ID:R24m495Za143デフォルトの名無しさん (アウアウエー Sa4a-Q/5A)
2017/11/04(土) 13:39:48.38ID:mHYELh+Ca printfの、パラメータに置換される文字列の呼び名は何ですか?
%dや%cの総称です
%dや%cの総称です
144デフォルトの名無しさん (ワッチョイ e9c3-psPY)
2017/11/04(土) 13:55:14.14ID:M43VuEZC0 英語だとformat specifier
日本語だと書式指定子とかそんな感じ
日本語だと書式指定子とかそんな感じ
145デフォルトの名無しさん (アウアウエー Sa4a-Q/5A)
2017/11/04(土) 14:06:40.76ID:ubpt4sUTa >>144
ありがとうございます
ありがとうございます
146デフォルトの名無しさん (ワッチョイ e171-17Ne)
2017/11/04(土) 14:50:01.01ID:qs6ShQOW0 >>142
一昔前はどの本でも推奨してたんやで
一昔前はどの本でも推奨してたんやで
147デフォルトの名無しさん (ワッチョイ 2e80-frTj)
2017/11/04(土) 15:27:20.00ID:FdHKGPou0 リテラルには代入できないから、リテラルを左側へ書いておく
今は、MISRA-C で、100項目をチェックする事が義務化されているから、
違反は必ず報告される
でも、トヨタのように、5/100 しか取れない企業もある。
95も違反してるw
今は、MISRA-C で、100項目をチェックする事が義務化されているから、
違反は必ず報告される
でも、トヨタのように、5/100 しか取れない企業もある。
95も違反してるw
148デフォルトの名無しさん (ワッチョイ 4193-ZDq4)
2017/11/04(土) 16:10:54.87ID:XesRBOxx0149デフォルトの名無しさん (ワッチョイ c2e1-bcP5)
2017/11/04(土) 20:24:04.67ID:wPtyVAZ40 >>147
トヨタの例を見て分かるようにMISRA-Cは役に立たないという話か
トヨタの例を見て分かるようにMISRA-Cは役に立たないという話か
150デフォルトの名無しさん (ワッチョイ e175-e3AS)
2017/11/04(土) 20:33:34.59ID:bSw/g7Kd0 トヨタ社員乙
151デフォルトの名無しさん (ワッチョイ 42b3-r/51)
2017/11/04(土) 21:34:25.67ID:sTeHaJ1X0 MISRAは有効だけど盲信してるやつはバカ
152デフォルトの名無しさん (ワッチョイ 6e3e-cSXK)
2017/11/05(日) 16:44:19.44ID:rSDVGL6P0 全員が同じレベルで言語の仕様や処理系の実装を理解しているわけじゃないからなあ。
最底辺のレベルを合わせる為にMISRAのような約束事が有用であろう事は想像できるんだが…
俺、車業界のソフト屋じゃなくて良かったと思うわ。
いや、むしろ、いっその事、強制された方が楽か?
最底辺のレベルを合わせる為にMISRAのような約束事が有用であろう事は想像できるんだが…
俺、車業界のソフト屋じゃなくて良かったと思うわ。
いや、むしろ、いっその事、強制された方が楽か?
153デフォルトの名無しさん (ワッチョイ 428a-Lt6+)
2017/11/05(日) 16:52:45.91ID:7kWEh0GI0 底辺用のサブセットだからね
154デフォルトの名無しさん (ワッチョイ 62ee-S32u)
2017/11/05(日) 20:23:18.52ID:AvV+p+8R0 COBOLの二の舞
155デフォルトの名無しさん (ワッチョイ 4150-lboT)
2017/11/05(日) 20:37:42.87ID:Dhy1E5e10 初心者です。
C言語には標準出力関数がいくつかあって気になったのですが、
puts("文字列");
puts("文字列");
puts("文字列");
などと書くのと、
printf(
"文字列\n"
"文字列\n"
"文字列\n
);
のように書くので結果は同じようになると思うのですが、速度やリソースの消費に違いはあるのでしょうか?
どちらが速いとかメモリ消費が少ないとかあれば教えていただきたいです。
C言語には標準出力関数がいくつかあって気になったのですが、
puts("文字列");
puts("文字列");
puts("文字列");
などと書くのと、
printf(
"文字列\n"
"文字列\n"
"文字列\n
);
のように書くので結果は同じようになると思うのですが、速度やリソースの消費に違いはあるのでしょうか?
どちらが速いとかメモリ消費が少ないとかあれば教えていただきたいです。
156デフォルトの名無しさん (ワッチョイ 4980-wfes)
2017/11/05(日) 20:40:29.69ID:8jvJZ2xf0 後者は%を探すぶん遅そう
157デフォルトの名無しさん (ワッチョイ c2e1-bcP5)
2017/11/05(日) 20:54:32.17ID:+s13f97B0 前者はシステムコールが3回呼ばれそうだから遅そう
158デフォルトの名無しさん (ワッチョイ e18a-Dqmo)
2017/11/05(日) 21:09:58.63ID:oA1U3DCD0 putsだと自動的に改行されんのか
>>155
printf() は重い。puts() の方が軽いしコード量も少ない
printf() は重い。puts() の方が軽いしコード量も少ない
160デフォルトの名無しさん (ワッチョイ 9d7f-lboT)
2017/11/05(日) 21:19:49.85ID:Z/yFjIMy0 >>157
stdoutがline bufferedなら、どっちもwriteが3回呼ばれる
言語規格的には解析処理のあるprintfのほうが遅そうだけど
これぐらい単純なprintfだと、gcc/clang辺りでコンパイルするとputsに最適化される
副作用諸々でputs自体の呼び出し回数を減らすことはないから、puts1回の呼び出しで済むprintfのほうが早い
stdoutがline bufferedなら、どっちもwriteが3回呼ばれる
言語規格的には解析処理のあるprintfのほうが遅そうだけど
これぐらい単純なprintfだと、gcc/clang辺りでコンパイルするとputsに最適化される
副作用諸々でputs自体の呼び出し回数を減らすことはないから、puts1回の呼び出しで済むprintfのほうが早い
161デフォルトの名無しさん (ワッチョイ e175-e3AS)
2017/11/05(日) 21:26:10.62ID:pE+6s3oz0 すっげー
物知りだなぁ
物知りだなぁ
>>160
それはさすがになさそうだ…
printf()/vfprint() のCのコードを#include しているわけではなく、単にリンカがランタイムのコードをリンクしているだけなのでは?
いいかえると、printf() がCで書かれており、printf() もコンパイルするのなら最適化がかかるだろうが、さすがにそうじゃないだろう?
それはさすがになさそうだ…
printf()/vfprint() のCのコードを#include しているわけではなく、単にリンカがランタイムのコードをリンクしているだけなのでは?
いいかえると、printf() がCで書かれており、printf() もコンパイルするのなら最適化がかかるだろうが、さすがにそうじゃないだろう?
163デフォルトの名無しさん (ワッチョイ e175-e3AS)
2017/11/05(日) 21:31:03.45ID:pE+6s3oz0 もうさぁ実測でいいよね
164片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-y/PZ)
2017/11/05(日) 21:34:36.83ID:nRtobml0d >>162
はい、時代遅れ発見。LLVMとGCCはお互いに競争する形で最適化の技術を進化させているんだよ。
はい、時代遅れ発見。LLVMとGCCはお互いに競争する形で最適化の技術を進化させているんだよ。
165デフォルトの名無しさん (ワッチョイ 9d7f-lboT)
2017/11/05(日) 21:41:12.14ID:Z/yFjIMy0 gccはビルトイン関数のprintfを持ってるのに、ライブラリをリンクとか何言ってんだコイツ
166デフォルトの名無しさん (ワッチョイ 9d7f-lboT)
2017/11/05(日) 21:43:19.65ID:Z/yFjIMy0 ランタイムのコードをリンクか、どっちにしろアホ晒してるのは変わらんか
168デフォルトの名無しさん (ワッチョイ 2ee8-Q/5A)
2017/11/06(月) 01:36:37.31ID:ixOJFcN/0 いやいや勉強になるわ
169デフォルトの名無しさん (ワッチョイ 4193-ZDq4)
2017/11/06(月) 06:37:53.91ID:uTTN+kxR0 >>167 のリンク先を読んだのだが…
printfで色々条件、最後が改行だったらputsに置き換え、は分かったけど
最後が改行でない場合はfputs( , stdout)に置き換えるわけにいかんのじゃろか?
printfで色々条件、最後が改行だったらputsに置き換え、は分かったけど
最後が改行でない場合はfputs( , stdout)に置き換えるわけにいかんのじゃろか?
170デフォルトの名無しさん (ワッチョイ ad8a-5Y2u)
2017/11/06(月) 08:19:42.45ID:a7D2X9T80 stdoutがフラッシュされるタイミングが改行だから拙いんじゃね
171デフォルトの名無しさん (ワッチョイ 06a1-156W)
2017/11/06(月) 09:46:39.21ID:2hip9t+X0 PC で組むなら、たいした問題にならないリソースの心配よりも、
統一して見やすいように気を使うべきだろうね。
統一して見やすいように気を使うべきだろうね。
172デフォルトの名無しさん (ワッチョイ ad23-nsS3)
2017/11/06(月) 15:24:45.69ID:TqJSXF8C0 >>167
詳しい解説サンクス!
詳しい解説サンクス!
173デフォルトの名無しさん (ワッチョイ 798a-z6xU)
2017/11/06(月) 16:24:18.19ID:Z2s1OQfZ0 fputs(
"文字列1\n"
"文字列2\n"
"文字列3\n"
, stdout
);
"文字列1\n"
"文字列2\n"
"文字列3\n"
, stdout
);
174デフォルトの名無しさん (ワッチョイ 4150-lboT)
2017/11/06(月) 17:25:31.98ID:f1KpQ6jU0 みなさんありがとうございます。
末尾の改行程度しかないprintfはputsに置き換えられるんですね。
ググってみたりもしたんですが、最近のPCであれば速度にほとんど違いが出ない様なことも書いてありました。
171さんの言う通り速度やリソースよりも見やすさや読みやすさの方が大事になりそうですね。
勉強になりました。
末尾の改行程度しかないprintfはputsに置き換えられるんですね。
ググってみたりもしたんですが、最近のPCであれば速度にほとんど違いが出ない様なことも書いてありました。
171さんの言う通り速度やリソースよりも見やすさや読みやすさの方が大事になりそうですね。
勉強になりました。
175デフォルトの名無しさん (ワッチョイ 4502-S32u)
2017/11/07(火) 05:32:04.97ID:2eQgtTM30 塵も積もれば何とやらで
すぐ砂時計だの輪っかだのになるのが
M$の作風
すぐ砂時計だの輪っかだのになるのが
M$の作風
176デフォルトの名無しさん (ワッチョイ 46e7-M99L)
2017/11/07(火) 18:15:10.39ID:pVSOD8mN0 入力が入れる前に厳密にされてないとprintfは怖くて使いたくないなエラーになるし
プログラミング問題とかなら入るの制限されてるから使う時もあるけど
プログラミング問題とかなら入るの制限されてるから使う時もあるけど
177デフォルトの名無しさん (ワッチョイ 99b3-tWDu)
2017/11/08(水) 00:52:24.03ID:+F77Ugxq0 自動で実行ファイルが作成されてその実行ファイルが新しく実行ファイルを作ってその実行ファイルが…
みたいな無限増殖するウイルス的なやつって理論上作れるの?
作る気はないがファイル名を自動で生成して上書きするようしていったら全ファイルが空ファイルになるってのも可能なのか?
みたいな無限増殖するウイルス的なやつって理論上作れるの?
作る気はないがファイル名を自動で生成して上書きするようしていったら全ファイルが空ファイルになるってのも可能なのか?
178デフォルトの名無しさん (ワッチョイ e175-e3AS)
2017/11/08(水) 00:53:30.71ID:Fypp0IbQ0 可能
179片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-y/PZ)
2017/11/08(水) 00:55:32.02ID:TZ5JAUzSd >>177
GetModulePathName+CopyFileで誰でも作れる。違法。
GetModulePathName+CopyFileで誰でも作れる。違法。
180片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-y/PZ)
2017/11/08(水) 02:35:25.82ID:TZ5JAUzSd >>177
全ファイルが空になるというのは、イカタコウイルス。可能だが違法。
全ファイルが空になるというのは、イカタコウイルス。可能だが違法。
181片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd62-y/PZ)
2017/11/08(水) 02:50:08.78ID:TZ5JAUzSd やり方は直接は教えられないから、Win32APIスレで個別の処理のやり方を細かく質問するといい。
182デフォルトの名無しさん (ワッチョイ 4150-lboT)
2017/11/08(水) 10:05:36.22ID:2J8ZwtJ20 なにこのスレ怖い
183デフォルトの名無しさん (ワッチョイ 5fb3-QPNr)
2017/11/09(木) 00:14:51.16ID:th5mXoJq0 プログラミング全体に言えることだがreturnがよくわからない
戻り値とかはなんとなくわかる
戻り値を表示するわけだからprintf要らずなわけ?
戻り値とかはなんとなくわかる
戻り値を表示するわけだからprintf要らずなわけ?
184デフォルトの名無しさん (ワッチョイ df8a-AcTI)
2017/11/09(木) 00:20:42.43ID:BpTh9vVd0 日本語でok
185デフォルトの名無しさん (ワッチョイ 5f9f-lB0v)
2017/11/09(木) 01:05:19.54ID:dSouu86q0 >>177
fork() してプロセス作るの繰り返すだけでいいのでは?ファイル作る必要あるか?
作ったとしてもそのファイルの内容は元のやつと同じなんだろ?
Windows の場合はどうするか知らない。fork() と同じような動きをするAPIがあるなら
それ使えばいい。(cygwinのライブラリ使えばいいか)
fork() してプロセス作るの繰り返すだけでいいのでは?ファイル作る必要あるか?
作ったとしてもそのファイルの内容は元のやつと同じなんだろ?
Windows の場合はどうするか知らない。fork() と同じような動きをするAPIがあるなら
それ使えばいい。(cygwinのライブラリ使えばいいか)
186デフォルトの名無しさん (ワッチョイ 5f9f-lB0v)
2017/11/09(木) 01:06:21.38ID:dSouu86q0 >>183
君は return を何か別のものと勘違いしてはいないか?
君は return を何か別のものと勘違いしてはいないか?
187デフォルトの名無しさん (ブーイモ MM83-15/i)
2017/11/09(木) 01:15:30.78ID:ibgaV5zkM188デフォルトの名無しさん (ワッチョイ 5fb3-QPNr)
2017/11/09(木) 01:31:12.69ID:th5mXoJq0 >>187
じゃホント適当なの
int main(void){
int a,b;
scanf("%d %d",&a,&b);
a=a+b;
return a;
}
適当に
基本自分はa=a+bの後の行にprintf("%d",a);って入れるけど戻り値を表示するだけならreturnで十分なの?って聞きたい
じゃホント適当なの
int main(void){
int a,b;
scanf("%d %d",&a,&b);
a=a+b;
return a;
}
適当に
基本自分はa=a+bの後の行にprintf("%d",a);って入れるけど戻り値を表示するだけならreturnで十分なの?って聞きたい
189デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
2017/11/09(木) 01:44:44.36ID:kZJdPPiU0190デフォルトの名無しさん (ワッチョイ 5f9f-lB0v)
2017/11/09(木) 01:52:12.46ID:dSouu86q0 >>188
それどこにも何も出力してないよ。一応 main() での return はプログラムを実行した側に
ステータスとして返されたりするがその辺はOSやmain()を呼ぶ側のコード依存だ。
で、それはプログラムの実行中で起きたエラーを伝えるためによく使われている。
0ならエラーなしで1ならエラーみたいに。つまり普通は計算結果を返すためには使わない。
それどこにも何も出力してないよ。一応 main() での return はプログラムを実行した側に
ステータスとして返されたりするがその辺はOSやmain()を呼ぶ側のコード依存だ。
で、それはプログラムの実行中で起きたエラーを伝えるためによく使われている。
0ならエラーなしで1ならエラーみたいに。つまり普通は計算結果を返すためには使わない。
191デフォルトの名無しさん (ワッチョイ 5fb3-QPNr)
2017/11/09(木) 01:52:57.21ID:th5mXoJq0192デフォルトの名無しさん (ワッチョイ 5f9f-lB0v)
2017/11/09(木) 02:31:24.91ID:dSouu86q0 >>191
固定と言うか、昔からの慣習で普通は0返すように書くんだよ。UNIXでの慣習ね。Linuxでも同じ。
UNIXではシェルスクリプトで動かした時にエラーかどうかを判定するのに使うことがある。
(シェルの if 文等で直接使える。Windows のコマンドプロンプトでもほぼ同じ)。
0が返されたら正常終了で0以外がエラーね。
まあとにかく歴史的な問題でそうなっていると思って良い。そういう意味では main() からの
return だけは特殊なものだと思っていい。
固定と言うか、昔からの慣習で普通は0返すように書くんだよ。UNIXでの慣習ね。Linuxでも同じ。
UNIXではシェルスクリプトで動かした時にエラーかどうかを判定するのに使うことがある。
(シェルの if 文等で直接使える。Windows のコマンドプロンプトでもほぼ同じ)。
0が返されたら正常終了で0以外がエラーね。
まあとにかく歴史的な問題でそうなっていると思って良い。そういう意味では main() からの
return だけは特殊なものだと思っていい。
193デフォルトの名無しさん (ワッチョイ 5f93-B4G6)
2017/11/09(木) 06:59:07.81ID:tZYUBTdz0 >>188
return a; と書いても基本的にはaの値は表示されないよ。
returnは関数内で計算した結果を呼び出し側に返すだけ。
値を見たければprintf等を使って表示する必要がある。
呼ばれた関数内で(途中経過として)表示するか、
呼び出した側で(関数の結果として)表示するか、は目的次第だが。
main() はOS(WindowsとかLinuxとか)からコマンドとして呼び出される関数、
と考えると分かりやすいかも。
main() 関数のreturnの値はOSに返される。
返された値をどう扱うかはOS側の問題だわね。
return a; と書いても基本的にはaの値は表示されないよ。
returnは関数内で計算した結果を呼び出し側に返すだけ。
値を見たければprintf等を使って表示する必要がある。
呼ばれた関数内で(途中経過として)表示するか、
呼び出した側で(関数の結果として)表示するか、は目的次第だが。
main() はOS(WindowsとかLinuxとか)からコマンドとして呼び出される関数、
と考えると分かりやすいかも。
main() 関数のreturnの値はOSに返される。
返された値をどう扱うかはOS側の問題だわね。
194デフォルトの名無しさん (ワッチョイ 5fb3-AgpC)
2017/11/09(木) 07:02:59.09ID:HmHTv3HB0 return は表示装置に値を戻す(表示する)機能ではない
195デフォルトの名無しさん (ワッチョイ 5f50-TPjW)
2017/11/09(木) 07:18:13.98ID:/m6aHr1P0 >>191
「自作関数を作る」あたりのページで出てくるsum関数でしょ?
あれってただ単に今までmain関数で return 0 しかしていないから、例として同じように書いているだけだと思うよ。
「関数から数値を返す」のページまで行けば return num してるsum関数が出てくるよ。
「自作関数を作る」あたりのページで出てくるsum関数でしょ?
あれってただ単に今までmain関数で return 0 しかしていないから、例として同じように書いているだけだと思うよ。
「関数から数値を返す」のページまで行けば return num してるsum関数が出てくるよ。
196デフォルトの名無しさん (ワッチョイ ffe7-/rI5)
2017/11/09(木) 13:19:13.30ID:U5AasQBn0 print関数だけで表示するだけの関数とかならreturn0するけど衝突判定とかならbool型返したりするからな
197デフォルトの名無しさん (アウーイモ MM23-0J0R)
2017/11/10(金) 15:35:52.06ID:VD/o6LfMM 何ができれば、c使えるって言っていい?
198デフォルトの名無しさん (ガックシ 064f-OZYs)
2017/11/10(金) 15:40:07.94ID:ZWtrLrii6 mallocの実装
199デフォルトの名無しさん (ワッチョイ 5f8a-j5yg)
2017/11/10(金) 15:43:10.76ID:u7W9Owtb0 自分が使っているPCなんかで、
処理を自動で行いたいなと思った時に、
それをC言語を使って実現出来るなら
処理を自動で行いたいなと思った時に、
それをC言語を使って実現出来るなら
200デフォルトの名無しさん (JP 0H53-15/i)
2017/11/10(金) 15:58:26.05ID:VNjqndEHH >>199
それ、OS固有のAPIの知識だらけで、Cがきちんと使える能力は測れない
それ、OS固有のAPIの知識だらけで、Cがきちんと使える能力は測れない
201デフォルトの名無しさん (ワッチョイ 5f8a-j5yg)
2017/11/10(金) 16:06:39.20ID:u7W9Owtb0 実装は知識だけでは出来ないからね
202デフォルトの名無しさん (アウアウカー Sad3-UELA)
2017/11/10(金) 16:34:50.57ID:TjdUuruGa >>197
数年かけてLinuxカーネルを読破できたら
数年かけてLinuxカーネルを読破できたら
203デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 16:50:46.00ID:3LbNPw0Wp コールバック関数の型宣言とか、
関数ポインタの扱いを難無く出来るか?
とかかな?
関数ポインタの扱いを難無く出来るか?
とかかな?
204デフォルトの名無しさん (ブーイモ MM83-Q9AV)
2017/11/10(金) 18:00:36.54ID:Dvtc6/jjM Cの限界を感じたら習得したといえる
205デフォルトの名無しさん (ワッチョイ 5fb3-AgpC)
2017/11/10(金) 18:32:02.73ID:23yuj+zi0 p = p() で駆動するようなステートマシンで
自分のポインタを返す関数 と それを保持するポインタの宣言とか
自分のポインタを返す関数 と それを保持するポインタの宣言とか
206デフォルトの名無しさん (ワッチョイ ffe7-bKAn)
2017/11/10(金) 19:29:46.79ID:xd+jRbDd0 Cコンパイラをインストールしまくる。
207デフォルトの名無しさん (ワッチョイ df8a-AcTI)
2017/11/10(金) 19:31:16.24ID:YeFpRpYh0 LISPかforthを作る
208デフォルトの名無しさん (ワッチョイ 7f06-TYjb)
2017/11/10(金) 20:07:11.53ID:f7hdF1Yr0 use the force luke
209デフォルトの名無しさん (ワッチョイ 5fb3-ouqv)
2017/11/10(金) 20:08:56.37ID:KTiHfL4P0 Ubuntuをインスコできる。
210デフォルトの名無しさん (ドコグロ MMe3-kkiU)
2017/11/10(金) 20:23:37.84ID:MIqJX5DTM >>200
「きちんと」とか書いてない要件を作り込んでバグだらけのコードを量産する自称玄人乙
「きちんと」とか書いてない要件を作り込んでバグだらけのコードを量産する自称玄人乙
211デフォルトの名無しさん (バットンキン MM73-NkgO)
2017/11/10(金) 21:03:47.59ID:UsP+TtJIM ポインタがわからないです
メモリのアドレスの最初を配列に入れて
呼び出すときそのアドレスの最初を読み込んでデータを引き出すということなんでしょうか?
メモリのアドレスの最初を配列に入れて
呼び出すときそのアドレスの最初を読み込んでデータを引き出すということなんでしょうか?
212デフォルトの名無しさん (ワッチョイ 5f75-OZYs)
2017/11/10(金) 21:09:11.01ID:7i6+bCDW0 配列?
213デフォルトの名無しさん (バットンキン MM73-NkgO)
2017/11/10(金) 21:14:49.24ID:UsP+TtJIM すいません
本当に無知なのでアドレスがよくわかりません
バカにもわかるように教えていただけると嬉しいです
本当に無知なのでアドレスがよくわかりません
バカにもわかるように教えていただけると嬉しいです
214デフォルトの名無しさん (ワッチョイ df61-cd7v)
2017/11/10(金) 21:15:04.33ID:JEFbhK0N0 ポインタの説明で、何かに例えて説明しようとすると余計に混乱する宿命。
215デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:24:06.37ID:3LbNPw0Wp アドレス=住所
216デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:24:52.41ID:3LbNPw0Wp 巨大な集合住宅を想像してごらん?
217デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:25:53.22ID:3LbNPw0Wp しかも1階建ての超長い長屋な。
218デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:28:10.51ID:3LbNPw0Wp じゃあ、貨物列車の方が良くね?
219デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:29:46.76ID:3LbNPw0Wp やっぱ、列車だと動くからダメだな。
220デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:33:05.26ID:3LbNPw0Wp …すまん、まとまらないから誰か頼むわ。
221デフォルトの名無しさん (ワッチョイ 5f93-B4G6)
2017/11/10(金) 21:53:36.59ID:mQGNgvjy0 コンピュータの中には何百メガとか何ギガとかのバイト数のメモリがあって、
データ(数値や画像や文字列、プログラム自体も)はメモリに記憶されていて、
メモリには1バイトごとに連番のアドレスが割り振られている。
…程度のイメージなら現代じゃ誰でも共有してると思うんだけど。
女学生が携帯電話機を使ったり、子供がゲームをする時だって、
「メモリカードの容量が足りなくなった」とか言うでしょ。
それとも、容量としてのメモリ(どれだけ入れられるのか)は飲み込めても
アドレスという概念(どこに入ってるのか)になると飛躍が必要なのかな。
データ(数値や画像や文字列、プログラム自体も)はメモリに記憶されていて、
メモリには1バイトごとに連番のアドレスが割り振られている。
…程度のイメージなら現代じゃ誰でも共有してると思うんだけど。
女学生が携帯電話機を使ったり、子供がゲームをする時だって、
「メモリカードの容量が足りなくなった」とか言うでしょ。
それとも、容量としてのメモリ(どれだけ入れられるのか)は飲み込めても
アドレスという概念(どこに入ってるのか)になると飛躍が必要なのかな。
222デフォルトの名無しさん (ササクッテロレ Sp33-1iEE)
2017/11/10(金) 21:56:49.72ID:3LbNPw0Wp アドレスが住所の意味で、小人さんひとりひとりが住んでる場所を表してて、お手紙を出したりもらったりするのに使うんだよ?
でok?
でok?
223デフォルトの名無しさん (ワッチョイ ffe7-/rI5)
2017/11/10(金) 22:04:11.83ID:bPzBG0Jo0 いわえる宅急便で品物の上に貼るあれよあれがないとどこに送れないか解らないっていうあれ
224デフォルトの名無しさん (ワッチョイ 7f0c-zl2n)
2017/11/10(金) 22:06:56.78ID:k49jiBoo0 RAMやROMにデータがどう書き込まれているのかイメージ出来ているのかな?
225デフォルトの名無しさん (アウアウウー Sa23-P3MY)
2017/11/10(金) 22:19:39.46ID:jSzmIFsta■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【和訳付き】レーダー照射問題 中国軍と自衛隊との“音声データ”公開 中国国営メディア [♪♪♪★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【高市筋肉】筋トレおじさん、爆増wwwwwwwwwwwwwステロイド使用も増 [308389511]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★2 [597533159]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★3 [597533159]
- 【悲報】負傷したウクライナ兵「領土なんかいらねーからさっさと和平しろ!」ウク信「ウクライナ兵はプーアノン!」 [616817505]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 俺が突拍子もないレスするとスクリプト扱いされるの不満なんだが
