C/C++

可変引数関数

C/C++セキュアコーディングを読んでのメモ. 前から気になってたけど, ちょうど良い機会なので調べてみる(というか本のサンプルをちょっと改変). #includeを宣言する 可変リストの引数に対しては型検査は行われない 省略記号は, 引数リストの最後の要素でなけ…

atexit関数

atexit関数に登録しておいた関数をmainの終了後, または, exitが呼ばれた後に実行することができる. __atribute__のdestructorと同じなのかな? とりあえず, サンプル. #include<stdio.h> #include<stdlib.h> void test( void ); int main( int argc, char *argv[] ) { atexit( t</stdlib.h></stdio.h>…

GCC の __atribute__ キーワード

書籍「C/C++セキュアコーディング」を読んでたら書いてあったので, テスト. GCC依存(だよね?). 詳細は, GCCのinfoを読むしかないのかな. 関数は, before, main, afterの順で実行されるハズ. #include<stdio.h> void before( void ) __attribute__ ((constructor)); vo</stdio.h>…

g++でEffective C++のスタイルに違反してないかを警告

Hena Hena Nikki 〜悔い倒れの日々〜で知った. -Weffc++当然, g++のみで有効なオプション. 標準ライブラリヘッダがEffective C++の指針に全て従っているわけではない, ということに注意する必要があるみたい. 当たりまえっちゃ当たりまえだけど, これは, -Wa…

windres日本語対応.

主題のない日記(2006/7/23)より. Mingwについてくるリソースコンパイラ, windresが日本語に対応したとのこと. (まだ動作は未確認.) 具体的には, コマンドラインオプションに, --language=ja --language=0411 (わざわざ修正の情報ありがとうございました.m(_ …

GCCで標準入力をコンパイル

ここを通して,ここより. どんな利点があるのかいまいち分かんないけど,面白い. 実行環境は,gcc 3.4.2(mingw-special) + ckw + tcshという変なもの(これが好きなのだ). gccはcygwin付属のものじゃなくて,MinGWのもの. ckwは,コマンドプロンプトを少…

クラス

データメンバとともに,関数もメンバとして一緒に宣言できる. 関数以外にも,型の定義や列挙定数の定義などが行える(これらもクラスのメンバとして扱われる). 特定の関数をフレンド関数として特別な扱いを受ける関数として宣言できる. 非公開部・公開部 -…

関数

詳説C++【第2版】標準C++完全理解を読んだときに書いたメモの一部 宣言位置の流儀 基本は,ブロッグの最初に宣言と初期化を一括して行う. メモリを動的に確保する場合は,動的確保の必要が生じた場所でポインタの宣言,動的確保,インスタンスの初期化を行…

C++入門

詳説C++【第2版】標準C++完全理解を読んだときに書いたメモの一部 空の引数リスト C++では,仮引数リストを省略するのは仮引数リストがvoidと書くのと同じ意味を持つ. ちなみにCでは,任意の数の任意の型の引数を取れることを意味した. 名前空間 グローバ…

C言語のおさらい

詳説C++【第2版】標準C++完全理解を読んだときに書いたメモの一部 外部参照 関数ローカル 関数の内部で宣言,定義された型名,変数名,const定数名は,その関数の中でのみ有効. 大域スコープ 関数の外で定義された型名,列挙定数名,変数名,const定数名,…