Cに関するDOSEIのブックマーク (17)

  • Makefile でのヘッダファイルの依存関係を自動的に解決する - ritcheyの日記

    Makefile でヘッダファイルの依存関係を書くのは結構面倒である。以前は X に付属の makedepend コマンドを使って行うのが普通だったが、便利な方法がないか調べてみた。 GNU make のマニュアルに、まさに依存関係を自動生成する方法そのものがかかれていた。 4.14 Generating Prerequisites Automatically に詳しい説明がある。make の info の日語訳が GNU make 日語訳(Coop編) - ルールの記述 があるが、ここにかかれている Makefile のルールそのままでは動作しなかった。英語の原文の方のルールにしないと動作しない。単に引用符の対応関係がとれていないだけ。 以下のようにすればよい。Makefile 全体を乗せておく。 生成された *.d を include する。ただし、一番最初は *.d は存在しない

    Makefile でのヘッダファイルの依存関係を自動的に解決する - ritcheyの日記
  • 三項演算子の正しい書き方

    C・C++JavaPerl などのプログラミング言語では、条件演算子として三項演算子?:が用意されている。条件演算子の書き方として、以下のような説明がされることが多い。 condition ? true-expression : false-expression この説明は、以下のプログラムと同じ程度、間違っている。 #include <stdio.h> main( ){printf ("hel" "lo, world\n" );} 条件演算子は、正しくは以下のように書く。 condition ? true-expression : false-expression 使い方の例を示す。 compare = obj1 == null ? obj2 == null ? 0 : -1 : obj2 == null ? 1 : obj1.toString().compareTo(obj2.to

    DOSEI
    DOSEI 2007/07/29
    これで const 変数の初期化が長くなるのを見やすくできる
  • 初級C言語Q&A(1)

    初出: C MAGAZINE 1995年6月号 Updated: 1996-03-12 [←1つ前] [→1つ後] [↑質問一覧] [↑記事一覧] [ホームページ] プロローグ ネットでC言語に関する会議を見ていると、同じような質問が何度も繰り返して出現することがわかります。 この種の質問は、俗にFAQ(Frequently Asked Question)と呼ばれます。 同じ質問が何度も繰り返される理由を考えること自体、興味深い問題ではあり ますが、実際にこの種の質問を見た限りでは、大半の疑問に対しては「疑問を持 つのももっともだ」と感じざるを得ないものがあります。C言語は多数のOS上で動 作しています。この結果、C言語は多くの人が使うようになりましたが、各処理系 によってふるまいが違うことも多くなるという欠点があり、それに対する疑問は C言語の仕様だけでは解決することができません。このこ

  • [オープンソース] Makefileを公開しよう - higepon blog

    最近 id:yaneuraoさんが PSPであそぼう エントリを精力的に書かれていて非常に面白い。 PSPでC++プログラミングするための環境を整えたりしているのだが、こんなマニアックでディープな技術blogで読めるというのはかなりすごいことだと思います。 さてその中で id:yaneurao:20050630のエントリーがちょっと気になりました。 いわゆる make についての説明と、やねうらおさんの独自 Makefileが公開されているという内容でした。 makeは、大規模なソースツリーを、ビルドするときに使うと便利なツールで、Unix系でアプリケーションをコンパイルしたことがある人ならご存知だと思う。 いわゆる make make install というお約束のアレである。 また Javaに詳しい方なら Ant のご先祖様というと分かりやすいかもしれない。 やねうらおさんは 最近の

    [オープンソース] Makefileを公開しよう - higepon blog
  • ワイド文字列の罠

    C++の罠 wchar_tを使うときの罠 日語などのマルチバイト文字列を扱うソフトで、 正規表現などの文字列処理をもっと楽にやりたいという人は、 選択肢の一つとしてワイド文字列の使用を考えることでしょう。 最近では多くのライブラリがワイド文字列とシングルバイト文字列双方に対応し、 C言語も95年の改定でワイド文字列型wchar_tを導入し、 既存のchar型を使用する標準ライブラリはほぼ全てwchar_t版が用意されました。 無論C++も、98年にISOで標準化された際には、 文字列クラスはちゃんとstringとwstringの双方が用意されました。 ところが、実際にwchar_tを使用するとなると、様々な障壁が立ちはだかります。 ここでは、私が陥ったwchar_tに関する「罠」を紹介していきます。 罠その1:Win9xで使えない WinNT系列では、文字列を扱う全てのAPIにchar版

  • ポインタ虎の巻~多次元配列の実現

    面白いことに、p == *p である。これはポインタが指す対象が配列でありポインタではないから、間接参照が生成されないのである(逆に言えばポインタの場合には、*p が間接参照をして、p != *p になる)。 上の表の結果と、二次元配列のシンボル x は、実質上一次元配列であることから、次のキャストは成功することになる。 int *p = (int *)x; だから次のように書ける。 int x[10][10]; int i; int *p = (int *)x; for( i = 0; i < 100; i++ ) { *p++ = i; } printf( "x[5][5] = %d\n", x[5][5] ); これは x が実質上一次元のポインタであることを示している。 この事情は関数引数の場合も同様である。二次元配列とポインタは混同されず、しかし int (*p)[10] とは一

  • C/C++ リファレンス

  • http://www.ishiboo.com/~nirva/c%2B%2B/

    DOSEI
    DOSEI 2006/05/27
    仕様書、デザパタ、STL
  • めも日記(2004-11-26) 実行可能ファイルサイズの最小化

    Noppiのおぼえがき

    DOSEI
    DOSEI 2006/05/20
    GCC に Shift JIS を通す
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

    DOSEI
    DOSEI 2006/05/06
    ソース解析ツール
  • Ch -- an embeddable C/C++ interpreter, C and C++ scripting language

    Home        |        For Teachers and Students        |        Products        |       Support       |       Download       |       Store       |        Company Ch is a C/C++ interpreter and scripting language environment. It is used by teachers, students, engineers and scientists around the world to learn math, computing, C/C++, and write cross-platform code and embedded scripts quickly and effic

    DOSEI
    DOSEI 2006/03/06
    各言語間の違いを吸収するインタプリタ?
  • comp.lang.c Frequently Asked Questions

    This collection of hypertext pages is Copyright 1995-2005 by Steve Summit. Content from the book "C Programming FAQs: Frequently Asked Questions" (Addison-Wesley, 1995, ISBN 0-201-84519-9) is made available here by permission of the author and the publisher as a service to the community. It is intended to complement the use of the published text and is protected by international copyright laws. Th

    DOSEI
    DOSEI 2006/01/22
    いわずと知れた FAQ 集
  • Cプログラミングの秘訣

    特集 Cプログラミングの秘訣 最終更新: 2006-03-28 このテキストはC MAGAZINE 1992年4月号に掲載された原稿のオリジナルテキストを元にしてHTMLに変換したものです。掲載文章と細部が異なっていると思われます。また、気付いた個所をいくつか修正してあります。 当時はまだWindows 95もないような時代で、現在の状況から見ると違和感のある内容も結構あるかもしれませんが、時代背景を想像しながら補正しつつ読んでいただければ幸いです。 ※2006年3月28日追記: 何が原因か知りませんがこのページのアクセスが増えているそうなので、 HTML のおかしなところを修正しました。 文章の変更はありません。 なお、このサイト(表ページ)は現在休眠状態ですが、 裏ページ や 裏の裏ページ の方を、細々と更新していたりします。 目次 Part1 よいプログラムを書く条件 Part2 明

  • http://wwwcs23.cs.kobe-u.ac.jp/~mori/enshu/enshu2/MORI/gcc.html

    DOSEI
    DOSEI 2005/05/28
    GCC のコンパイルオプション解説
  • GCC some extensions

    gcc(Gnu C Compiler)の拡張文法 [警告!] C/C++言語初心者はこのページを読まないでください。 このページではgcc独自のC/C++拡張文法について解説します。 これらの拡張文法が可能にする機構は確かに便利なのですが、 もちろんANSI規格に従っていないので、一般的には使うべきではありません。 C/C++言語文法を学び始めている初心者はこれらgcc拡張文法を 知るべきではありません。C/C++言語を正しく理解する上で大きな 支障となります。 C/C++言語を十分に熟知した者は、gccがこのようなこともすることを 「雑談」として知っておくと楽しいかもしれません。もちろん 実戦に使うべきではありませんが。しかし初心者が偶然に、これらの 機能を使ってうまくいく場合がありますので、そのような初心者を 見つけたら、それが標準規格ではないことを注意してください。 配列変数をコピー

    DOSEI
    DOSEI 2005/05/28
    GCC の拡張文法
  • プログラミング言語 C の新機能

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

  • http://wwwcs23.cs.kobe-u.ac.jp/~mori/enshu/enshu2/MORI/StandardC.html

  • 1