• ベストアンサー

返り値と引数が知りたいのですが。

クラスCFileのメンバー関数の機能でOPENとREADの返り値と引数が知りたいのですが。 自分でも調べたんですが。 READの返り値はUINTで引数はvoid* pBufferとUINT nCountであってるでしょうか? OPENの返り値はBOOLでいいのでしょうか?引数がわかりませんでした。 それと機能の意味なんですがOPENはファイルを開く以外にも意味はあるのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1
kenta_rou
質問者

お礼

ありがとうございます。OPENやREADだけでなく他の関数もたくさん載っていたので便利なサイトですね。今度から参考にします。

関連するQ&A

  • C言語:関数の返り値と引数について

    C言語:関数の返り値と引数について C言語の関数を作るとき、ほしい値とかを引数にして渡す場合と、そのまま返り値で渡す場合の二種類がありますよね? 例えば、 ・void Smooth( Image *src, Image *dst, int param ); ・Image *Smooth( Image *src, int param ); みたいな感じで mallocとかは返り値で渡してますけど、opencvの関数(例えばcvSmooth)とかは引数にしてます これって使い分けとかあるんでしょうか?

  • 値を返り値に返すのと参照渡しした引数に格納することの違い

    プログラミングをしていて、次のような2種類の形式の関数をみることがあります。 void sum(int a, int b, int& c); //aとbの和をcに格納する int sum(int a, int b); //aとbの和を返す 上の例のint &cは参照渡しされる引数という意味で、CやC++、PHPなどで同様です。 この、計算結果を参照渡しした引数に格納するのと、返り値に返すことの違いがよく分かりません。計算結果が複数ある場合は、前者の方が便利でしょう。しかし計算結果が1つだけなのに前者の方法を採っている関数も多く見かけます。個人的には、計算結果を返り値として返す後者の方法の方が感覚的に自然だと思うのですが、なぜ前者のような関数が存在するのか、教えていただきたく存じます。

  • 引数について質問

    私プログラミング初心者ですので、できるだけ優しい解説をしていただければ幸いです! 引数について、以下のような解説がありました。 「引数には仮引数と実引数の2種類が存在する。仮引数は、関数を定義する際に変数で指定する引数である。また、実引数は、プログラムの実行時に関数に引き渡される値となる引数である。つまり、関数の実行時には、実引数の値が仮引数に代入されることになる。」 質問:1「関数を定義する際に変数で指定する引数である。」という記述の中で「関数を定義」とありますが、実際のソースコードにおいて何に対応するかわかりません。簡潔なソースコードを交えて解説していただければ幸いです。 質問2:「関数を定義」に限らず、プログラミングにおいて「定義」という言葉をよく見ますが、これは本質的にどういう意味をもっているのでしょうか?具体的なソースコースコードを交えて解説してくださると幸いです。 もしかして、その定義とは例えば「public static void main(String arg[]){」のような「メソッド宣言」のことですか? 質問3:「関数の実行時には、実引数の値が仮引数に代入されることになる。」と書いてありますが、 これはどういうことですか、僕が実際にソースコードで記述してみるので、その考えが正しいか判定してください package 第4章; public class A { public static void main(String arg[]){ double x; x=Math.sqrt(2.0); System.out.println("2.0の平方根は"+x); } } 僕の考え:String arg[]が仮引数で、実引数2.0がString arg[]に代入されるってことでしょうか? 「定義」といえば、上記のソースコードでは、public static void main(String arg[]){ 以外見当たらないので、、 僕の考え2:Mathクラスは、標準クラス(javaが最初から備えているクラス)だから、プログラマが「関数を定義」しなくても予め関数が定義されているから、関数を定義する必要がない、ということでしょうか?

    • ベストアンサー
    • Java
  • 可変長引数をもつオーバライド関数について

    オーバライド関数について質問があります。 以下のようなクラスAとBがあります。 クラスAは基本クラスです。 クラスBはクラスAから導出しました。 ------------------------------------ CLASS A { public: virtual void func(char* p, ...); } ------------------------------------ CLASS B : public A { public: void func(char* p, ...); } ------------------------------------ メンバ関数の func() はオーバライド関数で、可変長の引数を持っています。 今、クラスBの func() の中で、クラスAの func() をコールするようにコーディングしました。 ----------------------------------- void B::func(char* p, ...) { : : A::func( ???? ) : : } ----------------------------------- ところが、クラスBの func()が受け取った引数を、そのままクラスAの func() に渡したいのですが、どうしたらいいのか分かりません。これって無理でしょうか? 教えて下さい。

  • 「引数の書き方」と「メンバ変数とメンバ関数の名前」について、教えてくだ

    「引数の書き方」と「メンバ変数とメンバ関数の名前」について、教えてください。 クラス内のコード抜粋なのですが、下記はどういう意味なのでしょうか? ▼メンバ変数 var $j = true; ▼メンバ関数 function j($p = false){ if($p) $this->j = false; return $this->j; } $this->j(true); 分からないこと ・コードの意味全般 ・($p = false)と書かれている引数の意味 ・メンバ変数とメンバ関数の名前は同じでもよいか? 

    • ベストアンサー
    • PHP
  • SystemC言語の文法(関数の引数にポインタ?)

    SystemC言語の文法について質問です。 ある雑誌で、ビット宣言変数のアドレスを関数に渡しており、 私も真似て作ってみたのですが、エラーが発生してしまいます。 --- (例) 引数にポインタを入れる処理 // 引数 sc_uint<32> *s の関数 void test::Calc_func( sc_uint<32> *s ) { cout << "s[0] = " << s[0]; // 32bitのデータ出力? } // これがmain文の代わりです void test::A_func(void) { sc_biguint<2048> a; sc_uint<12> i; for( i = 0; i < 2048; i++ ) { a[i] = 0; } Calc_func( &a[0] ); // ←問題! } // Error内容 Calc_funcの引数の入れ方が駄目! --- 色々、Calc_funcへの型を変えてやってみたのですが、 全くびくともしません。 雑誌が間違っている可能性は低いと思いまして、 今回、このような質問をさせていただきました。 インターネット上の情報でも、このような処理を 見つけることができませんでした。 どうぞよろしくお願いいたします。

  • テンプレート引数の型推測

    コンパイラはVC++2008です。 いろいろあって、あるクラスにおいて関数ポインタと関数オブジェクト双方を 同じように利用できないかと考えて、次のように試みました。 class Base { public:     virtual void func() =0; }; template<class Func> class CFunc :public Base { private:     Func m_func; public:     CThreadFunc(Func func):m_func(func){}     void func(){m_func();} }; class Hoge { private:     Base* base; public:     template<class Func>     Hoge(Func func)       :base(new CFunc<Func>(func))     {}     ~Hoge()     {       delete base;     }     void DoSomething()     {       base->func();     } }; クラスをテンプレートにするといちいち指定しなければならないので、 まず基底クラスに適当な仮想関数を設け、それを継承したクラスをテンプレートにしました。 そしてコンストラクタの引数で何かしらを受け取って、オーバーライドした関数の中で 関数ポインタか関数オブジェクトだと仮定して呼び出しています。 さらに基底クラスのポインタを目的のクラスが保持してやり、 こちらはコンストラクタをテンプレートにすることで引数から型を推測してもらうことで 先ほどのテンプレートクラスのインスタンスを作成しています。 そしてポインタを介してfunc()を使ったり…、などすれば、 とりあえず引数なしの関数と関数オブジェクトを同等に扱えないかなと思ったからです。 で、このようなクラスを作成してコンパイルすると、 void func(); //何かしら処理する関数 class Function { public:   void operator ()();  //何かしら処理する関数オブジェクト }; があったとして、 int main() {   Function function;   Hoge hoge(function); //いったん作ってから渡す   Hoge hoge2(func); //関数を渡す     hoge.DoSomething();   hoge2.DoSomething();    } は動きました。しかし、 int main() {   Hoge hoge(Function()); //引数を初期化する } とすると次のようなエラーが出ます。 warning C4930: 'Hoge hoge(Function(__cdecl *)(void))': プロトタイプされている関数が呼び出されませんでした (変数の定義が意図されていますか?) また、 int main() {   Hoge hoge(Function()); //引数を初期化する   hoge.DoSomething();  //クラスにアクセス } とすると次のようなほかのエラーが出ます。 error C2228: '.DoSomething' の左側はクラス、構造体、共用体でなければなりません。 しかし、例えば関数オブジェクトのコンストラクタに引数が設定されていたとして、 class Function { public:   Function(int dummy);  //何か値を受け取る   void operator ()();  //何かしら処理する関数オブジェクト }; となっていた時、 int main() {   Hoge hoge(Function(1)); //引数を初期化する   hoge.DoSomething();  //クラスにアクセス } の呼び出しは正常にコンパイルされ、想定通りの動きをします。 全く使わなくても、一つ以上の適当な引数を何でもいいからコンストラクタが持てば、 普通にコンパイルされるみたいです。ただ、デフォルト引数を与えてHoge hoge(Function())と 同じ形ですと引数があってもできないみたいです。 まったく通らないなら最初からあきらめるですが、中途半端にちゃんと動くために エラーの原因を知りたいと思っています。 テンプレートの場合には、引数に渡すタイミングで初期化はしてはいけないのでしょうか?

  • クラスのアドレスを引数として渡したい

    関数の引数として,クラスのアドレスを渡すにはどうしたら良いですか. void func(MyClass mc) { mc = ~ } としたとき,これは参照渡しとなっているのですか? それとも値渡しとなっているのですか? もし値渡しとなっているのでしたら,クラスの場合 どのようにすれば参照渡しにできるのでしょうか. よろしくお願いします.

  • C言語(引数)

    はじめまして。 C言語を習い始めたものです。 関数を定義するとき、よく耳にする、仮引数や実引数があると思います。 仮引数は関数の定義内で値をうけとる変数のことであり 実引数は関数を呼び出す際に渡す値を実引数というらしいのですが どこからどこまでを仮引数と呼ぶのかわかりません。 例えば、 fの関数の定義内で ↓があるとします。 (関数にする意味はないのですが、確認のためあしからず・・・) double f(double x) {     x=5;     return(x); } この場合、仮引数とよばれるものは double f(double x)の xが仮引数であって x=5;のxは仮引数と呼ばないのでしょうか?? もしそうならば void f(double x) { printf("%f",x); } のprintf("%f",x);内のxは仮引数とよぶのでしょうか? 質問の内容が意味不明かもしれませんが よろしくお願いします。

  • C# ref引数のnull判定

    C# ref引数のnull判定 こんにちは。 以下のような関数なのですが、 void func(ref uint arg) { ・・・・・ } argがnullかどうかを判断するにはどうすればよいのでしょうか? プラグインを作成していまして、funcは既存のインターフェースの実装なのですが、呼び出し側でargにnullを入れるケースがあり、判断する方法がわからすに困っています。 試しに if( arg != null ) { .... } としてみましたが、「型'uint'の値が型'uint?'の'null'に等しくなることはないので、式の結果は常に'true'になります。」 というwarningが出てしまい、判定できませんでした。

専門家に質問してみよう