• 締切済み

c言語 関数宣言

c言語で書かれたプログラムを見ていると、ちょっとわからない関数宣言がでてきました。 関数宣言をしているのだと思うのですが、これはいったいどういうことなのでしょうか。 grad_pf(x, a, yfit, dyda, ma) float x; float a[]; float *yfit; float dyda[]; int ma; {            処理・・・・・・・・ } 中括弧の前で宣言された変数はどういったものなのでしょうか。 よろしくお願いいたします。

  • q07p
  • お礼率37% (3/8)

みんなの回答

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

>grad_pf(x, a, yfit, dyda, ma) >float x; float a[]; float *yfit; float dyda[]; int ma; ず~~~~~っと以前の書き方ですね。今は、下のように書きます。 grad_pf(float x, float a[], float *yfit, float dyda[], int ma)

関連するQ&A

  • 関数の最初の変数有効期限について

    最近C言語を勉強しているのですが変数の有効範囲について教えてください。 ローカルやグローバル変数があるのが分かって関数内の変数も関数内でのみ有効というのも理解したのですが int a( int b ); という関数の最初に書く括弧の中のbと宣言している変数も関数内に含まれているという事で良いのでしょうか?。

  • ・関数内で宣言された変数の扱い(C入門本の説明で)

     以下C言語入門書の説明ですが!  いまいちわかりません?   ・関数内で宣言された変数の扱い 関数内で宣言した関数は、その関数内でのみ有効な変数になります。関数が異なれば、同じ変 数名で宣言することができます。例えば、main関数と(?)kansuu関数で、同じ(?)hennsuuという名 前の変数を宣言することができます。  int main() { int (A)hensuu = 0; (B)kansuuu(1); } int (C)kansuu(int hikusuu) { int (D)hensuu = 10; }  列のmain関数で宣言されている(?)hensuuと、さ(?)kansuu関数で宣言されている(?)hensuuは 同じ名前ですが、独立した異なるものです。(?)kansuu関数が実行されているときに、(?)hensuuの値 を変更しても、main関数で宣言されている(?)hensuuの値は変更されません。 また、(?)kansuu関数を実行している間だけ、(?)kansuu関数で宣言されている(?)hensuuが有効です。 (?)kansuu関数から呼び出し元でるmain関数に戻った際は、(?) kansuu関数で宣言した (?)hensuuはもう有効ではなくな、値を参照することもなくなります。     以上の説目で、   (A)hensuu、 (B)kansuuu、(C)kansuu、(D)hensuu  (アルファベット)を分かりやすいよう追加しました。   説明の   (?)にプログラムの(A)~(D)をつけたらどうなるか知りたいです。 (何となくわかるですが?)   よろしくお願いします。

  • C言語プログラムエラーについて

    C言語(CCS)でPICに書き込むためのプログラムを書いているのですが、 main関数内でfloat a[10]と宣言するとエラーは出ないのでが、 float a[100]にするとエラーが出てしまいます。 実数の配列を100個以上宣言したいのですが、doubleは使えないので どうすれば良いのかわかりません。 よろしくお願いします。

  • 関数原型宣言について

    関数原型宣言について 下記のプログラムのfunc関数は、関数原型宣言 <func(int a, long b, char *c);>が述されていないのにfunc関数の仮引数の型longは、関数原型宣言が与えられるといると本に書かれていたのですが、何故でしょうか教えて頂きたい。 ******************************************** #include <stdio.h> /*--- 三つの引数を受け取る関数 ---*/ void func(int a, long b, char *c) { int x; long y; /* … */ } int main(int argc, char *argv[]) { int a = 1; char s[] = "abc"; func(a + 3, 2, s); return (0); } *************************************************************

  • Cプログラムの全関数にプログラムを自動挿入したい

    C言語で作成したプログラムの全ての関数に対して、各関数のオート変数の宣言の前(関数の先頭)に特定のオート変数の宣言(例: int a=0xff)を自動で挿入したいです。 関数の数が多いので手作業以外の方法で良い方法はないでしょうか?

  • C言語のポインタによる関数の引数の書き方について教えてください。

    C言語を今勉強中の大学生です。 一気に複数の値をmainに返せる、参照による呼び出しによる関数の引数の書き方で困っています。配列を自作関数に引き渡したいのですが、どう書けばいいのでしょうか。 下の3つは、それぞれ(1)mainからの呼び出し、(2)自作関数での引数の引き受け、です。どこをどう変えたらエラーが出なくなるのか、分かる方、お願いいたします! (1)school(&m,h); (2)void school(int *m, float *h){ ※ちなみに変数は int m,float h[10][10]

  • 関数ポインタの型をtypedefしたとき

    C言語において、関数ポインタの型をtypedefで作ると、 typedef int (*MyFunc)(int*,int*); と宣言でき、関数ポインタの変数は、 int FuncA(int* a, int* b) { ~ } void main_loop() { MyFunc pf = FuncA; ~ (*pf)(pa,pb); } というように使うと思います。 ここで疑問なのですが、この実際に呼び出される関数、FuncAの定義に、typedef(ここではMyFunc)を使えないものでしょうか? 同じことを2回やっているようで、無駄に思えてしまいます。

  • C言語_関数宣言_fprintfです!お願いします!!

    C言語(C言語_関数宣言_fscanf)に関する質問です。 main関数とは別に新しく自分で関数を定義しました。 (keisan関数とします。) keisan関数の中に「fprintf」を用いたのですが上手くいきません。 (printfは通常通りに働きます。) どのような理由が考えられるでしょうか? (グローバル変数などの理由でしょうか?) どうか,ご指導お願いします!! #include <stdio.h> void kiroku(int ki1,int ki2){ printf("%d-%d\n",ki1,ki2); fprintf(fo,"%d-%d\n",ki1,ki2); /*↑このfprintfです*/ } int main(){ char *fnmo="kiroku.txt"; FILE *fo; int n,i; // open files. fo = fopen(fnmo,"w"); if(fo==NULL) { printf("NG\n"); return 0; } // read and store. n=1; i=2; kiroku(n,i); // close files. fclose(fo); return 0; }

  • C言語 関数の戻り値と自動変数

    かなり基礎的な質問になるのですが、疑問に思うことがあり、質問をさせていただきます。 関数内で宣言した変数を戻り値として使う場合ですが、ポインタなどではなく実体の場合でも、静的変数として宣言をしたほうが良いのでしょうか? 現実的に考えると、プログラムが関数から出て、呼び出した側の関数が戻り値を受け取るまでの瞬間に、その領域が書き換えられる可能性は極めて低いと思うのですけど、C言語の仕様としてはどうなのでしょうか? 関数内で宣言した戻り値に使う変数には、必ずstaticをつけた方が良いのでしょうか? もしおわかりでしたら教えて下さい。

  • プログラミングC言語の問題ですがわかりません。

    プログラミングC言語の問題ですがわかりません。 5つのint型変数a,b,c,ans,responseを宣言する。a,b,cの値はscanf関数で読みこむことにより初期化する。 a(1)b(2)c= と表示して、scanf関数によりユーザーの答案をresponseに読み込み、演算結果が正しければ1、間違っていたら0を表示するプログラムを作成しなさい。ここで(1)と(2)には算術演算子(+,-,*,/,%)がはいる。5×5=25通りの演算をすべて実行するようにしなさい。 特に正しければ1、間違っていたら0を表示するプログラムがわかりません。 まだprintfとscanf関数と演算子しかやっていないのでそれを踏まえたプログラムを1通りだけでいいので書いて頂けると幸いです。

専門家に質問してみよう