タグ

cに関するryujinnoのブックマーク (11)

  • C言語関数辞典 - C言語用語集 スタックフレーム (stack frame)

    ベースポインタは,現在実行中のスタックフレーム (アクティブなフレーム) の底 (図2の通り正確には底の少し上) を指すレジスタです.以前の BP の値というのは,呼出し側の関数のベースポインタの値で,関数終了時にベースポインタにコピーされます.また,リターンアドレスとは,関数の処理終了後に次に実行するプログラムのアドレスのことです. Cプログラマの必読書 たくさんあるC言語関連の書籍の中でも特に役に立ったです.よかったら参考にしてみてください. C実践プログラミング 第3版 C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです. 文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーのは,読みにくいが多いのですが書はとても読みやすくオススメです.

  • Optimize Options (Using the GNU Compiler Collection (GCC))

    3.11 Options That Control Optimization ¶ These options control various sorts of optimizations. Without any optimization option, the compiler’s goal is to reduce the cost of compilation and to make debugging produce the expected results. Statements are independent: if you stop the program with a breakpoint between statements, you can then assign a new value to any variable or change the program cou

  • cgdb

    Welcome cgdb is a lightweight curses (terminal-based) interface to the GNU Debugger (GDB). In addition to the standard gdb console, cgdb provides a split screen view that displays the source code as it executes. The keyboard interface is modeled after vim, so vim users should feel at home using cgdb. Screenshot Features Syntax-highlighted source window Assembly view Visual breakpoint setting Keybo

  • GNU Make

    もし、デバッグ用のバイナリファイルを作成するのであれば、CFLAGSに -g オプションを指定します。 $ make CFLAGS=0g helloworld 暗黙の規則と変数は、次のように -p オプションを使って表示 することができます。 $ make -p 別の例 別の例で、実際につかってみましょう。まず以下のソースコードをダウンロードしてみましょう。 helloworld_gtk.c Makefile このプログラムの中身は複雑になるので省きますが、前回書いたhelloworld.cというプログラムをポップアップ化したものです。コンパイルして実行すると画面に新しいウィンドウが現れ、「Hello World!」と表示されます。他に異なる点として、グラフィック関係の「ライブラリ」をリンクさせる必要があります。 ライブラリとはソフトウェアの一部を他ソフトウェアで再利用可能にするためのソフ

  • nm symbol output t vs T in a shared so library

  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

    ryujinno
    ryujinno 2018/03/25
  • C tips & reference \n

    当サイトは、その名のとおりC言語の関数やマクロの使い方についての説明を主なコンテンツとしております. コーディング中に「あれ,この関数なんだっけ?」となったときや,関数をmanコマンドで調べたけれど,いまいち使い方が分からないときなどにご利用いただければ幸いです. ホームページの構成 C言語関数辞典は大きく分けて4つのコンテンツから構成されます. コンテンツ説明

  • 静的ライブラリ (.a) の作成と利用 | yunabe.jp

    静的ライブラリ (.a) の作成 ar コマンド で複数のオブジェクトファイル (.o) をまとめて静的ライブラリ (.a) を作成できます。

  • Cコンパイラをスクラッチから開発してみた(日記)

    以前に8ccというCコンパイラをゼロからひとりで開発していたときのログです。40日でセルフコンパイルできるところまで到達しています。日付はすべて2012年です。コードとヒストリはすべてGitHubで見れます。 3月4日 というわけでコンパイラを作っているわけだけど、1000行くらい書いたらそれなりに動き始めてきた。こんなのも動くし: int a = 1; a + 2; // => 3 こういうのも通る。 int a = 61; int *b = &a; *b; // => 61 文字列は文字の配列として扱っていて、配列をポインタに成り下げる振る舞いも実装しているので、こういうのも通る。関数呼び出しもある。 char *c= "ab" + 1; printf("%c", *c); // => b 前回もこのあたりはがんばって実装したからここまで作るのはわりと単純作業かも。二回目だから配列とか

    Cコンパイラをスクラッチから開発してみた(日記)
  • C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ

    サイボウズ・ラボの光成です。 先日、社内で主にLinux上でC/C++を用いている開発者向けの講義をしました。 「こんなことができる」と知ってもらい、興味を持てば各自で勉強してもらおうと広く浅くツールを紹介しました。 gtags, ASan, Valgrind, addr2line, cppcheck, SystemTap, perfなどです。 興味があれば講義資料「C/C++プログラマのための開発ツール」をごらんください。 コンパイラオプション 受講者には新人やサイボウズ・ラボユースの学生もいたので基的なところから紹介しました。 C/C++コンパイラを使うときはできるだけ警告オプションをつけるのが望ましいです。 警告が出るのは自分のコードの書き方に不備があることが多いからです。 gccやclangでは-Wall -Wextraは基としてそれ以外にも有用なオプションがあります(C++

    C/C++プログラマのための開発ツール - Cybozu Inside Out | サイボウズエンジニアのブログ
  • プログラミング言語 C の新機能

    プログラミング言語 C は 1990 年に ISO で規格化された言語です。その後、何度かの誤りの訂正や wchar_t 型の追加といった追補がなされた後、さらに使いやすくするための新しい機能が検討されてきました。そして、1999 年、ついに新しいプログラミング言語 C の仕様「ISO/IEC 9899:1999 - Programming Language C」(略称 C99) が 1999/12/01 付けで規格として出版されました。ここでは、その新機能を説明します。

    ryujinno
    ryujinno 2016/05/19
  • 1