ぼく用あれこれまとめ内検索 / 「可変長引数」で検索した結果

検索 :
  • 可変長引数
    可変長引数 いま読み返すと、この記事の適当さ加減がやばい。 Cでの実装 #include iostream #include stdarg.h int unco(int renton, ...) { va_list list;//va_list型は stdarg.h で定義されてる va_start(list, renton);//可変長引数の要素を扱い始めるためのva_start()マクロ int eureka = va_arg(list, int);//リストの次の要素を取り出す。popとかdequeueみたいな感じ。 while(eureka != 0) { renton += eureka; eureka = va_arg(list, int); } va_end(list);//可変長引数の要素を扱い終わるためのva_endマクロ return renton; } ...
  • メニュー
    ...変数で配列使うとき 可変長引数 関数ポインタ C/C++の強制終了について。 例外処理 struct(構造体) structハック (struct hack) - Flexible array member std complexクラス namespace(名前空間) 仮想デストラクタ こうして僕はエラーにはまった。 typedef テンプレート templateに関するあれこれ STL(C++) STL使ってる? std list std auto_ptr Boost Boost使おうぜ! Visual Studio VisualStudio2010 msvcr リンカーオプション ランタイムライブラリ WindowsSDK windowsプログラミングの祈り DirectX DirectXを使う。 Direct3Dのとっつきにくい用語 こうして僕はエラーにはまった。(DxE...
  • WAVEファイル
    WAVEファイルについて WAVEフォーマットからその読み込みまでをまとめます。 FOURCC識別子(4文字コード/4CharCode) 4文字のASCIIコードでできた識別子 ASCIIなので、「a-z A-Z 0-9」だけでなく半角スペースも使える Win32 API の MMSystems.h の mmioFOURCC マクロなどを使うとプログラムが楽に。 PCMフォーマット FOURCC識別子 説明 RIFF チャンクの最初4バイトに WAVE だとか XWMA だとかがくる。 fmt WAVEFORMATEX, WAVEFORMATEXTENSIBLE, ADPCMWAVEFORMAT, XMA2WAVEFORMATEXのどれかに対応する。 data 波形、いわゆるオーディオデータが入ってる。バッファに読み込むやつ。 WAVフォーマット 大きさ 中身 ...
  • explicit
    explicit C++の予約語でコンストラクタの宣言の前でよく付けられてるのを見かける カーゴカルト的だけど とにかく引数1個のコンストラクタだったらexplicitを付けておけばなんか変な挙動を起こすことはないはず。 explicitをつけるときよりかは、つけないときを考えた方がよさそう。 暗黙のコンストラクタを呼び出さないようにする。 (2011/12/02) (注意)ここのところ憶測で書いてるところが多いので、誤ったことを書いてるかもしれません。 (注意)ソースコードを載せてますが、コンパイルして試したわけじゃないのでかなり不安です。 class Unco { int x; public Unco(int x) x(x) {} }; void PrintUnco( cons...
  • オーバーロードとオーバーライド
    オーバーロードとオーバーライド よく頭の中でこんがらがるので整理しようかと。 オーバーロード(overload, 多重定義) void Func(){ std cout "unco" std endl; } void Func(int x){ std cout x std endl; } void Func(double x){ std cout x std endl; } void Func(int x, int y){ std cout x + y std endl; } 引数の型や、引数の数が違う場合に使うのがオーバーロード(overload, 多重定義)。 classのコンストラクタはオーバーロードし放題、デストラクタは多重定義できません。 オーバーロードはほどほどに。 template ...
  • const型修飾子
    const型修飾子 こんな感じで。 class IUnco { void Unco(int const num)const { std cout num std endl; } }; const定数 const int eureka = 16; int const renton = 14; 上のeurekaさんの宣言はわりとよく見かけるけど、その下のrentonさんの宣言はマイナーだよね。 この場合はこれといった違いはない。 constポインタ const int* Eureka;//これはおっけー int* const Renton;//これはだめ!初期化しろぉー>< int const* Anemone;//これもおっけー この場合、2行目のRentonの宣言はコンパイラたんに怒られる。「Renton初期化しろ!」って感じで。 それぞれの違いは、 const...
  • C/C++の強制終了について。
    C/C++の強制終了について。 std exit()関数 #include iostream void Eureka() { std cout 156 std endl; std exit(1);//ここで強制終了 } int main() { Eureka(); std cout 256 std endl; return 0; } exit()関数は、main()文内の「return 0;」と同じことをしてるらしい。(詳しく知らない) ちなみにstd abort()関数っていうのもあるけど、それは使った瞬間プログラムをほんとの意味で強制終了させるから怖い。VC++環境でやると、ランタイムエラー並みの扱い。他に手段があるとき以外は、使わないほうがよさそう。 VC++でstd abort()使うととてつもなく実行時に怒られるよ。 std ...
  • STL使ってる?
    STL使ってる? やべぇ、このページ。見返してみたら思った以上に、不正確(2012/11/08 現在) STL使おうぜ。 C++を使ってるのに、Cライクな書き方しかできないなんてそんなのC++を使ってるとは言えないよ。 ってことで、C++使ってる感を出すためにみんなもSTL使ってね。 google先生で調べればすぐに使い方からなにまでがでてくるので詳しい使い方をここにまとめる気はないの。 使ってて思ったこととかまとめるよ。 std vector #include iostream #include vector int main() { std vector int eureka(7);//int eureka[7]; eureka[1] = 156;//普通の配列みたく使えるよん eureka.at(2) = 256;//こんな書き方もできるよ。 //eur...
  • すーぱーはかー
    すーぱーはかー 呼び方一覧 すーぱーはかーは"メンバ関数"なんて呼びません。"メソッド"と呼びます。 用語 読み 引数 パラメータ("オペランド"というほうがアセンブラ使ってる感が出る) 被演算子 オペランド 演算子 オペレータ メンバ関数 メソッド 参照 リファレンス 参照変数 エイリアス SDK 異界ジェノサイダー DIY ホムセン newとかdeleteするアレ アロケータ 行列 マトリックス 四元数 クォータニオン(または、よつもとかず) インデントすること インデンテーション 2進化10進 BCD 構文解析プログラム パーサ(パーザって言うと、よりその道の人っぽい印象が得られる) 接頭辞 プリフィックス 接尾辞 サフィックス メンバ関数だけ持ってるクラスのこと インターフェイス Annotated C++ Refer...
  • これ説明できる?
    これ説明できる? 誰だって、Hello, world!くらい書けるし、classなんて1日あれば理解できる。 が、それだけじゃどう考えても説明できない事柄が山のようにあるわけで。。 とりあえず、単語だけ見て、説明できないもの、というより初耳なものを徹底的に並べて、おおまかなことくらいは理解しておけるようにするページです。 これみんな説明できるの?ぼくできないよ。 用語 補足 環境変数 プリコンパイル リンカ コマンドライン MSDN - コンパイラ コマンド ラインの構文MSDN - コマンド ラインでのビルド スレッド MSDN - マルチスレッド プログラム コーデック coder/decoderの略らしい?ほんと?そもそもなに? マネージコード ネイティブコード パック10進数 ポアソン分布 ニュートン法 逆ポーランド記法 オペランド+オペレー...
  • SAFE_DELETE()系のdefineマクロ廃止
    SAFE_DELETE()系の#defineマクロ廃止 なぜ#defineマクロを廃止するの? const定数を使う理由と同じで、型が不鮮明であるため、なるべくC++では使わないほうがいいかと。 マクロはプリプロセス実行なので型チェックが行われませんし、名前空間も存在しません。とても危険です。 こういうの。 #ifndef SAFE_DELETE #define SAFE_DELETE(p) { if(p!=NULL) { delete (p); (p) = NULL; } } #endif #ifndef SAFE_DELETE_ARRAY #define SAFE_DELETE_ARRAY(p) { if(p!=NULL) { delete[] (p); (p) = NULL; } } #endif #ifndef SAFE_RELEASE #defin...
  • 命名規則
    命名規則 「システムハンガリアン使いたくないけど、じゃあどんな名前の付け方をすればいいの?」 その疑問にぶつかったぼくのあれやこれやをだらだらまとめます。 システムハンガリアン? システムハンガリアンのどこがデメリットなのか~ってことはここでは考察しない方針でいきます。 あくまでも、"ぼく"が書きやすく、見やすいソースを書くための命名規則なので絶対的なものじゃありません。 システムハンガリアン データの型を表すプリフィックスをつける命名法。 システムじゃないハンガリアン そのデータが何を表すのか、を意味する命名法。 ぼく用命名規則 だいたいの決まり。 ハンガリアン記法は使わない。 わかりやすい名前をつけよう。 ○ FinalFantasy なるほど…! × FF FinalFightなのかFinalFantasyなのかが曖昧 省略形を使わないようにしよう。 ...
  • oggファイル
    oggファイル oggとは 読み方は「オグ」「オッグ」である。「おーじーじー」だなんて読んでる人とは縁を切りたいくらいなの。僕はおーじーじーってよんでるんですけど... BSDライセンスなのでありがたく使わせていただきたい音声ファイル形式1位なのだ! OggVorbis 多くの人が"ogg" で指し示す音声ファイル形式の正式名称は「OggVorbis」って言うらしいの。というのも、oggはマルチメディア(音楽に限らず動画とか)を扱ったフォーマットのことだそうで…。 その中の音声ファイルフォーマットがVorbis(読み方はヴォrrrビス:巻き舌で)なの。 ogg自体はコンテナフォーマットというそうですが、ぼくはよく知りません。 コンテナフォーマット oggがその例。これについてはあとで詳しく調べたい。 oggファイルを読み込む ov_fopen();したときに返って...
  • std::auto_ptr
    std auto_ptr C++ってnewしたあとにdeleteしないといけないとか面倒だよね。 deleteし忘れるとメモリリーク起こるし…。 そこで使うのがガベージコレクション、またの名をスマートポインタなの。 C++の標準ライブラリにはstd auto_ptrっていうスマートポインタが実装されてるの! auto_ptrの特徴? スコープを外れるとdeleteしてくれる。 所有権という考え方。 所有権は常に1人しか持てないとか面倒すぎる。 こんなの使えないよぉ…って人は boost/shared_ptr.hpp を使うといいかも。 STLとauto_ptrの組み合わせって結構相性悪いから、そういうときはboost shared_ptrを使うといいよ。 使い方。 #include iostream #include memory class Eureka { publ...
  • zlib 1.2.7 を Visual Studio 2012 Express でビルドする
    zlib 1.2.7 を Visual Studio 2012 Express でビルドする zlib 1.2.7(May 2, 2012) を Windows 7 環境にて導入します。 Visual Studio 2012 Express for Windows Desktop を使用しています。実行したのは 32bit(x86) 環境です。適宜、お使いの環境に合わせて読み進めてください Visual C++ 2012 コンパイラを使いますVisual C++ 2012 コンパイラより以前の VC++ 10 環境(Visual Studio 2010)および VC++ 11 Beta コンパイラ(Visual Studio 2012 RC) と混同しないよう注意してください。 zlib 1.2.7 を Visual Studio 2012 RC でビルドする - VC++ 11 Beta...
  • dynamic_cast演算子
    dynamic_cast演算子 動的なバインディングこと、実行時にcastができるC++の機能だよ。 なにかとweb上のdynamic_cast演算子の項目には「ダウンキャスト」という単語がちらほらでてくる。基底classから派生classへのcastのことを「ダウンキャスト」というそうで。 その逆、派生classから基底classへのcastを「アップキャスト」ともいうらしい。 アップキャストは問題なし。派生classは基底classの中身を継承して持ってるから、基底classにcastすることが容易にできちゃう。 お父さんとお母さんの血を受け継いでいれば、子どもはお父さんにもお母さんにもなれる。 それとは対照的に、ダウンキャストは問題あり。基底classは、派生classの中身を持っているかどうか保障されない。通常のcastより危険度増加! お父さんが子どもになろうとしても、子どもがも...
  • windowsプログラミングの祈り
    カーゴカルトチックWindowsプログラミング #define STRICT #define WIN32_LEAN_AND_MEAN とりあえずこいつら宣言しとけばバグが出ないと信仰されてる。 STRICT マクロ定義 #ifndef STRICT #define STRICT #endif #include Windows.h MSさんによると、「#define STRICT」を定義することで、厳密な型チェックが行われるようになる。 マクロだったり、関数ポインタだったり、使いまくりの WindowsAPI だから、出きる限りでいいからコンパイル時の型チェックで安全性を高めたいよね、みたいな? やっておいて損はないと思う。 参考文献 マイクロソフト サポート オンライン - STRICT とメッセージ クラッカーの概要 WIN32_LEAN_AND_MEAN マクロ定義...
  • zlib 1.2.7 を Visual Studio 2012 RC でビルドする
    zlib 1.2.7 を Visual Studio 2012 RC でビルドする zlib 1.2.7(May 2, 2012) を Windows 7 環境にて導入します。 Visual Studio 2012 RC を使用しています。32bit(x86) 環境です。適宜、お使いの環境に合わせて読み解いてください VC++ 11 Beta コンパイラを使うので、それまでの VC++ 10 環境(Visual Studio 2010)と混同しないよう注意してください。 Visual Studio 2012 Express (Visual C++ 2012 コンパイラ)を使用する場合は以下のページを参照してくださいzlib 1.2.7 を Visual Studio 2012 Express でビルドする ダウンロード http //zlib.net/(公式サイト)から「zlib s...
  • こうして僕はエラーにはまった。
    こうして僕はエラーにはまった。 エラーメッセージとその発生状況、対処法と(解決できれば)解決策をまとめていくページ。 VC++2010環境です。 クラスの宣言の最後にセミコロンは付けたか? 1 c \projects\test.h(11) error C2236 予期しない class test です。 ; が入力されていることを確認してください。 1 c \projects\test.h(11) error C2143 構文エラー ; が { の前にありません。 1 c \projects\test.h(11) error C2447 { 対応する関数ヘッダーがありません (旧形式の仮引数リスト?) ヘッダの中で定義しているクラスの宣言の最後にセミコロンをつけ忘れているとなる。とても厄介。 エラーが起きたヘッダでincludeしているヘッダに...
  • こうして僕はエラーにはまった。(Ogg/Vorbisライブラリビルド編)
    こうして僕はエラーにはまった。(Ogg/Vorbisライブラリビルド編) はじめに このページは2010年の12月ごろにエラーにはまった際のログを残しているページです。 そのせいかなんだか見にくいです。 それと無知ゆえに嘘ばかり書いています。うのみにしないでください。 Ogg/Vorbis のビルド手順だけをまとめた項目が見たい方は以下のページをご参照ください。Ogg/Vorbis ライブラリを再びビルドしてみる ぼくの環境編 VisualC++2010 Expressこれを使ってOggとVorbisをインストール(というよりも、プログラムで使うライブラリをビルドしちゃおう)な感じです。 ダウンロード/解凍編 http //www.xiph.org/downloads/より、「libogg-1.2.2.zip」「libvorbis-1.3.2.zip」をダウンロードした。そんでもって...
  • @wiki全体から「可変長引数」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索

記事メニュー
目安箱バナー