タグ

関数に関するyowanoのブックマーク (19)

  • 関数を呼び出すということ - Web/DB プログラミング徹底解説

    前の資料では、WINAPI というのは __stdcall の別名であり、これは呼び出し規約であると説明しました。 そして 「呼び出し規約」 を理解するためには 「関数を呼び出す」ということがどのようなものか理解すると良いです。 尚、ここでは x86 アーキテクチャを想定しています。 結局、関数を呼び出すってどういうこと? あるプログラム A から、あるプログラム B を呼び出す時に x86 ではスタックというメモリ領域を使用します。 ここでは、A は Windows の Win32 サブシステム、B はここで作った自前のプログラムとします。 A から B の WinMain を呼び出すときのことを考えます。 この時に、A はスタックにパラメータを積み上げます。 B を実行するときに、必要に応じてスタックに積み上げられたパラメータを参照します。 B の処理が終わったら、制御は A へと戻り

    関数を呼び出すということ - Web/DB プログラミング徹底解説
    yowano
    yowano 2014/06/30
    __stdcallは、「引数のスタックへの積み上げ順序は右から左」で、「スタックの巻き戻しをするのは呼び出された側」という呼び出し規約に従って関数を実行することを示す。
  • GotW #2: Temporary Objects 一時オブジェクト(勝手訳) - bearmini's blog

    第2回めの GotW の翻訳です。 例によって原文著者(Herb Sutter 氏)の許可は得ていませんし、私の英訳がヒドいクオリティである(用語の統一がとれていないとか、誤訳が含まれているとか)かもしれませんのでそこのところはご理解いただければと思います。 原文:http://herbsutter.com/2013/05/13/gotw-2-solution-temporary-objects/ Unnecessary and/or temporary objects are frequent culprits that can throw all your hard work—and your program’s performance—right out the window. How can you spot them and avoid them? 必要がなかったり一時的にしか使

    GotW #2: Temporary Objects 一時オブジェクト(勝手訳) - bearmini's blog
    yowano
    yowano 2014/03/16
    読み取り専用のパラメータは const& にする、auto を使って変数を宣言する、インクリメントは可能な限り前置を使う。逆に、forの手動最適化、戻り値のconst参照化、SE/SEへの執着は避ける
  • return文 - Wikipedia

    return文(リターンぶん、英: return statement)とは、プログラミング言語における文の一つである。goto文やbreak文、continue文のようなジャンプ文 (jump statement) に分類される。サブルーチンからの復帰に使われ、復帰と同時に値を返すことができる。その値は戻り値(もどりち、英: return value)、返り値(かえりち)、返却値(へんきゃくち)あるいはそのままreturn値(リターンち)などと呼ばれる。 日産業規格(旧称・日工業規格)では、C言語の国際標準規格「ISO/IEC 9899:1999」の翻訳「JIS X 3010:2003」およびC++の国際標準規格「ISO/IEC 14882:2003」の翻訳「JIS X 3014:2003」において、「返却値」という訳語を使用している。 言語別の意味や構文[編集] C/C++[編集]

    yowano
    yowano 2014/02/27
    (前略)main関数の戻り値がintの場合にreturnを省略すると、return 0; があったとみなされる。/(前略)return [void型を返す関数呼び出し]; はコンパイル可能。
  • オブジェクト指向できていますか?

    3. 自己紹介 1992年~1997年 某ゲーム会社 プログラマ SFC,GB,PS1,N64のゲーム開発経験 1998年~現在 日工学院八王子専門学校 @mozmoz1972 専任講師 プログラミング教育を中心に担当 twitterもfacebookも実名です。よかったらフォローしてください。

    オブジェクト指向できていますか?
    yowano
    yowano 2014/02/01
    オブジェクト思考についてだけでなく、複雑な処理をSTLの関数や三項演算子を使って綺麗に書こう、という話もアリ。
  • C++0xの新機能、finalとoverride

    gcc 4.7は、finalとoverrideを実装している。 finalとは、クラスの派生と、virtual関数のオーバーライドを禁止するための機能である。 struct B final { } ; struct D : B { } ; // エラー struct C { virtual void f() final { } } ; struct D : C { void f() { } // エラー、C::fはオーバーライドできない } ; これ以上説明する必要がないくらいに分かりやすい機能だ。現実的には、最底辺の基クラスのvirtual関数のオーバーライドを禁止にするということはない。なぜならば、それは普通の関数とほぼかわりないからだ。あえて言えば、派生クラスで、同じシグネチャの関数を定義できなくする程度の意味しかない。大方、以下のような目的に使われるだろう。 struct A {

    yowano
    yowano 2014/01/06
    『virtual関数をオーバーライドするさいには、virtualキーワードは必要ない』『void f() final override { }』この2つが自分にとって重要だった。
  • C++マニアック,テンプレート,関数,クラス,template,function,class

    C++マニアック コンパイラ,テンプレート,関数,クラス,template,function,class ページの末尾へ トップページへ C++ の面白さは、テンプレートをきわめて、初めて理解できるといっていいでしょう。 テンプレート関数とテンプレートクラス テンプレート関数 テンプレート関数とは テンプレート関数がコンパイルできない場合 テンプレート引数を増やしてみる テンプレート関数の異型 テンプレートクラス テンプレート関数とテンプレートクラス ページの先頭へ まず認識すべきことは、テンプレートには大きく分けて次の二つがあるということです。 テンプレート関数 テンプレートクラス 意味はさておき、ここでは、まず、テンプレートには関数とクラスの二つがあるということを認識してください。 更に、上記 2 種類のテンプレートには、どちらにも、引数が変数型ではない異型があります。意味はさておき、

    yowano
    yowano 2013/10/26
    テンプレート関数の引数がTなどではなく、intやcharになっている場合の記述がここ以外のサイトであまり見当たらないため、ブクマ。
  • メンバ関数の戻り値型後置とconst修飾 - pandaman64の日記

    yowano
    yowano 2013/10/25
    template<typename T> auto good(T &&value) const /*ここ*/ ->decltype(value) /*ここじゃない*/{ return value; }
  • 可変長引数

    可変長引数をとる関数をつくるには,va_*マクロを使う. 大雑把な流れは以下のとおり. foo(type1 x, ...) { va_list args; va_start(args, x); while (ナントカ) { type2 arg = va_arg(args, type2); } va_end(args); 詳細 具体例がないとわかりにくいと思うので,次のような関数を例に説明する. プロトタイプ

    yowano
    yowano 2013/10/17
    可変個数引数(可変長引数)を扱う関数の記述の仕方。va_start、va_arg、va_endの引数や動作について、一番分かりやすく解説してある。
  • C++: 水面下の仕組み - Microsoft Visual C++ Web Site

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    C++: 水面下の仕組み - Microsoft Visual C++ Web Site
    yowano
    yowano 2013/10/11
    C++のクラスやそのメンバの実装の解説。単純な関数や仮想関数、単一継承や多重継承などでどの程度オーバヘッドに違いが出るかについて記述。ざっと見た感じでは、多用する頻度の低いものほど遅いが、誤差程度。
  • 本の虫: lambda 完全解説

    目的 この記事は、C++0xのlambdaを完全に解説せんとする目的を以て書かれた。サンプルコードは最小に留め、エラー処理等は省いた。この記事さえ読めば、今日からlambdaを恐れることなく使う物のC++0xプログラマになれるだろう。 lambdaとは何ぞや lambdaである。あるものは、lambda関数、あるいは無名関数という名称を使っている。いったいlambdaとは何なのか。 lambdaは関数である。また、特に名前はない。したがって、lambda関数、無名関数と呼ぶのは、間違ってはいない。しかしここでは、単にlambdaと呼ぶことにする。 lambdaを定義しよう lambdaは関数オブジェクトである。lambdaは関数オブジェクトである。これはとても大事なので二度書いた。lambdaは関数オブジェクト以外の何物でもない。ところが不思議なことに、皆lambdaが単なる関数オブジェ

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    yowano
    yowano 2013/09/26
    int printf(const char* format, ...) のような、...によって複数の仮引数を指定できる関数の宣言・定義の仕方と、具体的な実装方法。
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    yowano
    yowano 2013/08/28
    関数オブジェクトは、 ()演算子をオーバーロードしたクラスのこと。関数オブジェクトに加え、for_eachの分かりやすい解説もなされている。
  • Google Sites

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

    yowano
    yowano 2013/07/07
    プログラミング言語C++のリファレンスを提供するWebサイト。最新の情報が多く、サンプルコードも豊富なため、理解がしやすい。
  • C/C++ - 言語仕様編 第7回 ~インスタンスとオブジェクト~

    変数の宣言と定数変数型 C++において、変数の宣言は、スコープ内のいたるところで可能となる。 あるT型変数、またはリテラル t1 があるとき、 T const t=t1; のように、型名の後に const をつけると、tは、値としてt1を持ち、かつ、書き換えが出来ない変数となる。これをT型定数変数と呼ぶ。 ここで、tを const T t=t1; と初期化しても、tは、T型定数変数として機能する。このことから、tは、const T型変数であると してもよい。 C++において、定数変数は、それ自身が、リテラルとして機能することが許されるため、 たとえば、配列の要素数として、 int arr[t]={0}; などとして、t個の連続する0からなる配列を構築することが許される。 あるP型ポインタ変数、または、変数のポインタ p に対して、 P* const p1=p; P const* p2=p;

  • C++ と const 参照 - NyaRuRuが地球にいたころ

    数年前,まだ私が C++ゲームを書いていたころ,深すぎる関数のネストは「一旦変数に入れ」て「読みやすくする」というコーディングスタイルにだいたい落ち着いていた.もちろん,「これは一旦別名を付けるだけで,変数に再代入する気はないよ」ということで const も付ける.ただあまり大きなデータのコピーは嫌だよねということで,戻り値が std::string や構造体の関数呼び出しを「一旦変数に入れる」ときは const 参照を好んで使っていた. A(B(C(a), b, D(E(c), d, e))); 「む,なんて読みにくいコード.ばらせよ」 const int target_id = C(a); const MessageBody& message_body = D(E(c), d, e); const Message& msg = B(target_id, b, message_bod

    C++ と const 参照 - NyaRuRuが地球にいたころ
    yowano
    yowano 2013/05/29
    関数内でconst 参照があったとき,考えるべきことは色々ある.確かにその参照は,初期化時と同じオブジェクトを指し続けてはいるだろうが,その中身まで同じとは限らない。
  • 関数ポインタ

    関数のエントリポイント コンパイラは、コンパイル時に各関数のエントリポイントを作成します プログラムの実効時に関数が呼び出されると、実行制御はこのエントリポイントに移行します エントリポイントは、言わば関数のアドレスです アドレスであるということはポインタ変数をもつことができます 関数ポインタは、アドレスを格納する関数と同じ戻り値の型のポインタ変数を用意します 仮引数がある場合は、続けて仮引数も指定します 宣言時には、優先順位の関係から必ずポインタ名に ( ) をつけます 型 (*変数名) (仮引数); 関数のエントリポイントをポインタに格納すれば、このポインタから関数を呼び出せます こうすることで、間接参照で関数を呼び出しすることができるのです #include <stdio.h> void func(void); int main() { void (*po)() = func; po

    yowano
    yowano 2013/04/19
    関数ポインタを使用することで、関数の配列を実現することができる。関数の配列は、for文などと組み合わせて使うことで有用なものになる。
  • 互いに素 - Wikipedia

    互いに素とは、数学の複数分野で使われる用語である。 集合論 互いに素 (集合論) → 素集合 整数論 互いに素 (整数論) 代数学 2つの多項式が「互いに素である」とは、両者をともに割り切るような多項式が存在しないこと、つまり、それぞれの多項式の因数分解で共通の因数が現れないことである。 2つのイデアルが「互いに素である」とは、そのイデアルの和が環全体となることである。 このページは曖昧さ回避のためのページです。一つの語句が複数の意味・職能を有する場合の水先案内のために、異なる用法を一覧にしてあります。お探しの用語に一番近い記事を選んで下さい。このページへリンクしているページを見つけたら、リンクを適切な項目に張り替えて下さい。

    yowano
    yowano 2012/12/24
    2つの整数が1と-1以外に共通の約数を持たない場合の2数の関係である。
  • サービス終了のお知らせ - NAVER まとめ

    サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。

  • PHPerなら知っておいて損はない10の関数

    こんにちは。小川です。 日は数あるPHPの関数の中でも、わりと知られてそうで実は知らない人もいるかもしれない便利な関数をご紹介します。 ■nl2br 改行コードを<br />に変換する関数です。 <?php $string = <<<EOS foo bar baz EOS; echo nl2br($string);

    PHPerなら知っておいて損はない10の関数
  • 1