C11の変更点 C23の変更点 プリプロセッシングディレクティブ プリプロセッサの概要 基本構文 条件付きディレクティブ ソースファイルのインクルード バイナリリソースの埋め込み マクロの定義と置換 行制御 診断ディレクティブ プラグマディレクティブ ヌルディレクティブ 事前定義されたマクロ名 プラグマオペレーター まとめと実践問題 /データ型と変数の高度な話題 (typedef,enum, const など) 中級者向けの話題 (プログラム仮引数, inline, 再帰 など) ストレージクラス指定子 auto constexpr extern register static thread_local typedef 定数式 整数定数式 算術定数式 アドレス定数 属性C23 非推奨化、フォールスルー禁止、非復帰など 型推論C23 typeof演算子とtypeof_unqual演算子C23
gdb は ptrace(2) システムコールの便利なフロントエンドインタフェースとして使えます。特にターゲットプロセス内の関数を式の中で呼ぶことができる機能は強力で、ptrace の attach 機能と組み合わせて使えば、動作中のプロセスに対してちょっかいを出すことが簡単にできます。 単純な活用例をいくつか紹介します。以下は i386 の Debian GNU/Linux (sid) のシステムで実験しました。gdb は 6.4 より前のバージョンではうまく動かない例があります。 % ps x | grep firefox 3616 ? Rl 19:40 /usr/lib/firefox/firefox-bin -a firefox % gdb -q -p 3616 (gdb) p chdir("/") [Switching to Thread -1221168480 (LWP 361
The GNU Source-Level Debugger Eighth Edition, for GDB version 5.0 March 2000 Richard Stallman, Roland Pesch, Stan Shebs, et.al. GDBの要約 フリー・ソフトウェア GDBに貢献した人々 GDBセッションのサンプル GDBの起動と終了 GDBの起動 ファイルの選択 モードの選択 GDBの終了 シェル・コマンド GDBコマンド コマンドの構文 コマンド名の補完 ヘルプの表示 GDB配下でのプログラムの実行 デバッグのためのコンパイル ユーザ・プログラムの起動 ユーザ・プログラムの引数 ユーザ・プログラムの環境 ユーザ・プログラムの作業ディレクトリ ユーザ・プログラムの入出力 既に実行中のプロセスのデバッグ 子プロセスの終了 マルチスレッド・プログラムのデバッグ マルチ
State of the art C compiler optimization tricks, Felix von Leitner, Linux Kongress 2009. 最近のCコンパイラーの最適化能力についてまとめたプレゼンテーション。定数の扱いやインライン展開などの基本的な項目から始まって,分岐の削除やベクトル化, SIMD 化など,最新のコンパイラーに搭載されている様々な機能について調べている。 この手の分岐の削除はほとんどのコンパイラーで有効らしい。 ベクトル化については gcc がだいぶ頑張っている印象。 「gcc は全プラットフォームにおいてビデオコーデックプログラマーより賢い」 これらの最適化が実際のコードでどのように機能するか気になって逆アセンブリコードを覗いてみる人も少なくないと思うけれど,それを代わりにやってくれた感じだ。この手の話題に興味がある人ならば,目を通
2010年05月13日04:00 カテゴリLightweight Languages (gc)c - block?それってnested functionで出来るよ! 残念ながらBlocksが使えるのはOS Xのみであるが… Binary Hacks 高林哲 / 鵜飼文敏 / 佐藤祐介 / 浜地慎一郎 / 首藤一幸 PerlエンジニアのためのObjective-C Blocks入門 - unknownplace.orgOS X 10.6 以降の xcode では Objective-C に Blocks というシンタックスが追加されている。 gccであれば、Nested Functions というものが使える。 例えば、以下はcodepadでも動く。 http://codepad.org/V3uDduYT #include <stdio.h> int main(int argc, char*
Node:Top, Next:G++ and GCC, Previous:(dir), Up:(dir) Introduction このマニュアルでは、GNU コンパイラの使い方、インストール方法、移植方法や、新しい機能や互換性の無い部分、それにバグレポートの方法などについて説明している。GNU CC のバージョン 2.95 に対応している。(日本語版ドラフト-17 July 2001) G++ and GCC: C や C++ のプログラムがコンパイル可能Invoking GCC: gcc のコマンド行オプションInstallation: GCC のインストール方法C Extensions: C 言語の GNU の拡張C++ Extensions: C++ 言語の GNU の拡張Gcov: gcov: GCC のテストカバレージプログラムTrouble: GCC のインストールで問題が起
Section: GNU Tools (1) Updated: 1998/12/16 Index JM Home Page roff page 名称 gcc, g++ - GNU プロジェクト C および C++ コンパイラ (gcc-2.95.3) 書式 gcc [ option | filename ]... 注意 このマニュアルに書かれた情報は GNU C コンパイラの完全な ドキュメンテーションからの抜粋であり、オプションの意味の記述にとどめます。 このマニュアルはボランティアのメンテナンスが行なわれた時にのみ更新され るもので、常に最新の情報を示しているわけではありません。 もしこのマニュアルと実際のソフトウェアの間に矛盾点があれば、 正式なドキュメントである Info ファイルのほうを参照して下さい。 このマニュアル中の古い記述が重大な混乱や不具合をきたすことになれば、 このマ
C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 本稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図
OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr
タイトルは「C言語 ポインタ完全制覇」。 このページの書籍化とはいえ、内容の大半は書き下ろしですので、 既にWebで読んでおられる方にも決して損はさせません。 詳細はこちらへどうぞ。 「C言語 ポインタ完全制覇(第2版)」書籍情報 「C言語 ポインタ完全制覇」書籍情報(旧版) 技術評論社さんによる書籍案内はこちら。 第2版 旧版 修正履歴は、このページの末尾にあります このページについて 全くもって僭越ながら、恐れおおくも偉そうにも、 こんな文書をWWWで公開させていただくことにしました。 この文書は、もともと社内向けの教科書として作成したものです。 私は、一介の文系出身プログラマであり、 特に情報関係の教育を受けたわけでもなく、 プログラミング言語に深い造詣を持っているわけではありません。 この文書にも多くの誤りや、誤解を招く表現があるかと思います。 そのような記述を見付けられた方は、ぜ
超初心者対象の、C/C++/C#プログラム教室です。 「Windows95/98/2000/XP使うだけには飽きた」「以前Cをやったことがあるが、ポインターでつまずいた」 「プログラムは、全く経験がない」「DOSのプログラムは、作れるがWindowsのプログラムは ちょっと・・・」という方のためのホーム・ページです。中級者以上の方、セミプロの方、 プロの方ご遠慮ください。Macユーザーの方も私の力不足のためお役に立てません。 Webmaster Yasutaka Kumei [How To Walk][画像が表示されない時は] [VC++6.0でうまくビルドできない時は] [リソースがうまく表示されない時は(VC++6.0)] [リソースがうまく表示されない時は(VC++.net)] [メッセージ・ループ] [WinXP+VC++.netでコンパイルできない時は] [.netでパラメータ・
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く