• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C言語の電卓におけるincludeについて)

C言語の電卓におけるincludeについて

oldman50の回答

  • oldman50
  • ベストアンサー率29% (8/27)
回答No.8

質問1と質問3は、#6さんが既にご回答なさっている通りです。 質問2について、原文では以下のようになっています。  The return statement is the mechanism for returning a value from the called function to its caller. Any 'expression'(任意の「式」) can follow return:  return expression;  The 'expression' will be converted to the return type of the function if necessary. Parentheses are often used around the 'expression', but they are optional.  The calling function is free to ignore the returned value.  Furthermore, there need be no 'expression' after return; in that case, no value is returned to the caller.  Control also returns to the caller with no value when execution "falls off the end" of the function by reaching the closing right brace.  It is no illegal, but probably a sign of trouble, if a function returns a value from one place and no value from another.  In any case, if a function fails to return a value, its "value" is certain to be garbage.  一つの関数が、或る場所では返り値を返し、別の場所では返り値を返さない場合があったとしても、合法である、トラブルのサインにはなるだろうが。  どんな場合にせよ、関数が返り値を返すことに失敗した場合、その返り値のもとになっている変数は、ゴミになる(不要な物として消滅する)。 「関数で返さない値は、関数から抜けると消えるもの」も、この場合の「ゴミ」と同義です。 >関数で返さない値の後処理はどうすればいいのですか? 何もしなくていいです。

rescue99
質問者

お礼

ありがとうございます。

関連するQ&A

  • C言語の#includeについて

    ただいまC言語の勉強を始めたばかりなのですが、 疑問に思った点があったので質問させていただきます。参考書やweb上で#includeについて調べると、 <stdio.h>なら、<stdio.h>に書かれている内容を含める、<stdio.h>にはC言語を使う上で標準的に使われるものが色々書かれている、例えば、printfを使うための色々な設定であるということで一度は理解できたのですが、「外したらどうなるのだろう」と思い、 外してみたところ、先ほどの状態となんら変わりなく 動作しました。ここで自分がやったプログラムは 初歩的な文字列表示(printf),変数を使った計算(int)です。この場合が別に#includeを最初に記述しなくても良かったパターンだと思うのですが、 では一体どういった時に記述しないと動作しなくなるといった現象が起こるのでしょうか? また、記述しなくてもいい場合はどういった時なのでしょうか?私のレベルは本当に始めたばかりの初心者です。どうぞご教授お願いいたします。

  • 現在、C言語を習っています。

    現在、C言語を習っています。 今、関数を勉強しているんですがわからない文があるので正解の文を教えてください。 #include <stdio.h> int main (void) { int a=123; doubke b=4.5; printf("%d\n○○" ,a,b); return 0; } ○に入る言語や文が間違っていたら教えてください。

  • C言語のポインタの考え方について

    ポインタについて理解ができていないのでお聞きしたいのですが 値を交換する関数のプログラミングでこの場合ポインタ で以下にしないといけないと思います。 #include<stdio.h> void swap(int *a int *b){ int c; c=*a; *a=*b; *b=c; } main(){ int x,y; x=123; y=456; swap(&x,&y); printf("x = %d, y = %d\n", x, y); } またポインタを使用せず以下のプログラムではなぜダメのでしょうか。 よろしくお願い致します。 #include<stdio.h> void swap(int a int b){ int c; c=a; a=b; b=c; } main(){ int x,y; x=123; y=456; swap(x,y); printf("x = %d, y = %d\n", x, y); }

  • c言語のついて

    c言語で・・・ #include <stdio.h> main() {   printf("こんにちは!"); } というプログラム(適当に作りました)が動きません。 ドコを間違えていますか?

  •  現在、私はC言語を学んでいます。

     現在、私はC言語を学んでいます。  プログラミングの初期の初期の問題なんですが、 「Hello World」という有名なプログラムがありますよね? それについての質問です。 #include<stdio.h> main() { printf("Hello World"); return 0; } も #include<stdio.h> main(void) { printf("Hello World"); return 0; } も #include<stdio.h> int main() { printf("Hello World"); } もちゃんと表示できます。 ここで質問です。 int main(void) int main() main() main(void) はどう違うんですか? あと、 return 0; はあっても無くてもいいようなんですが どういう意味があるんでしょうか?

  • C言語のpow関数の不具合

    linux(ubuntu)の上でgccを使っています。 powの関数がおかしいです。 pow(10,-1)を計算させると正しく1e-1が出力されます。 #include <math.h> #include <stdio.h> int main(void){ double x = -1; printf("%f",pow(10,x)); return 0; } 上記のプログラムを走らせると、 In function "main"; *****.c:(.text+0x2d):undefined reference to 'pow' collect2: ldはステータス1で終了しました。 というエラーメッセージがでます。 なぜかpow関数の中に変数を入れるとプログラムが動きません。

  • c言語

    私は現在c言語初心者ですが関数を使い円柱の体積を求めてるのですが なぜかエラーだらけです。どなたか何故エラーが起きるのか教えていただけませんか? #include<stdio.h> int taiseki(int *volu); int main() { int volu=0; taiseki(int &volu); printf("%d",volu); } int taiseki(int *volu) { int i = 2; int c = 3; int t = 6; int a = 2*i*c*c/4; int b =i*c*t; volu=a/b; return volu; } こんなかんじですがいかがでしょう?

  • C言語でヘッダファイルにグローバル変数を宣言する

    main.hに static int a; と記述し、main.cで #include "main.h" [省略] a=10; のように使用して、-Wallをつけてコンパイルすると、main.cで使用しているにも関わらず、 'a' defined but not used という警告が表示されます。 同様に、関数においても、ヘッダファイルでstaticをつけると ‘~’ declared ‘static’ but never defined と警告されます。 静的グローバル変数などは、ソースファイル内で宣言しなければいけないのでしょうか?ヘッダファイル内で宣言しても警告が出ないような方法はありますか?

  • C言語の代入についての質問です

    C言語の代入についての質問です 下のプログラムを見て下さい #include<stdio.h> int x[2]; x[0] = x[1] = 1; int main(void) { for(int i = 0 ; i < 2 ; i++) printf("%d",x[i]); putchar('\n'); return 0 ; } このプログラムをコンパイラすると3行目の代入にエラーが出されます (当たり前ですがmainの中に3行目の代入文を入れると上手くいきます) まぁそれがなぜかというのが知りたいのですが、 それはC言語をつくった人が決めたことなのでしょうか? ちなみに異なる実行環境でやってみたらどれも駄目だったので これが上手くいくことはない?のだと思います そういうもんなのだったら、そういうものだと理解しますが もし理由を知っている方がいらっしゃったら教えて下さい

  • C言語

    今C言語の基本について学習しているのですが… 初心者なのでまったくわかりません。 #include<stdio.h> int main() char *p,*q; char s[27]="abcdefghijklmnopqrstuvwxyz" char h[5]="GHIJK" 【 】 printf("%c"\n,p); printf("%c"\n,q); return(0); } この【 】の中に何がくるのか分かる方がいたらぜひ教えてほしいですm(__)m よろしくおねがいします。