タグ

cに関するmotemenのブックマーク (12)

  • C preprocessor - Wikipedia

    This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages) This article is written like a manual or guide. Please help rewrite this article and remove advice or instruction. (February 2013) This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to i

    C preprocessor - Wikipedia
    motemen
    motemen 2009/02/04
  • [C/C++][コンパイラ] オペランド評価の実際 - mad日記

    こことか http://code.nanigac.com/forum/view/342 こことか http://www.st.rim.or.jp/~phinloda/cqa/cqa7.html で話されているオペランドの評価に関してだけれども, もちろん処理系依存なので一般的な議論はできないが,実際のところコンパイラの実装がどうなっているかは興味がある所ではないかと思う。 例えばC Q&Aの例の int i = 7; printf("%d", i++ * i++); が49になるのは, まぁ納得できる人は多いと思うけれども, int i = 7; printf("%d", ++i * ++i); が81になると言ったら(つまり2つの++iがどちらも9になる), 驚く人は結構いるのではないかと思う。 実はこれは何も奇妙な話ではなく,コンパイラを素直に実装するとこうなってしまう。多くのコンパイ

    [C/C++][コンパイラ] オペランド評価の実際 - mad日記
    motemen
    motemen 2009/01/22
  • C FAQ 1

    6.1: あるソースファイルでchar a[6]と定義して、別のファイルでextern char *aと宣言した、なぜこれはうまくいかないのか。 A: extern char *aという宣言が、実際の定義とい違うからである。 「タイプTへのポインター」は「タイプTの配列」とは異なる。extern char a[]を使え。 References: ANSI Sec. 3.5.4.2; ISO Sec. 6.5.4.2; CT&P Sec. 3.3 pp. 33-4, Sec. 4.5 pp. 64-5. 6.2: でもchar a[]はchar *aと同じと聞いたことがあるが。 A: 全然別のものである(君が聞いた話というのは、関数の仮引数の話だ。 質問2.4参照)。配列はポインターと違う。配列の宣言「char a[6]」 は6文字分の領域を確保して、それを「a」という名前で識別すること

    motemen
    motemen 2008/12/10
    配列とポインタ
  • Atul's Mini-C Compiler

    June 2, 2004 Download the tarball. This is a compiler for a subset of the C programming language. It was written in Python during the spring of 2004. The lexer and parser were constructed using Dave Beazley's PLY (Python Lex-Yacc), an open-source Python implementation of GNU lex/yacc. Stages of compilation (symbol tree generation, type checking, flow control checking, etc) are performed using an o

  • C 言語 マクロ講座 # ## 編: uyota 匠の一手

    # と ## はマクロ関数で使う。 # と ## 共に古くからマクロで実装されている。ところが、これを知らない人達がとても多い。 十年、二十年と C 言語を使ってきたという人でも知らないと言う人が結構いる。これを知らないから、余計なコードを書き、バグを増やし続けるのである。 高級言語と呼ばれる言語の中でも、単純な部類に入る C 言語。その C 言語よりも単純なマクロ言語の構文を把握していないのである。マクロ自体では、できることもたかが知れている。マクロでできるのは、ごく限られた置換や条件分岐処理程度のみだ。C 言語の構文だけでは、それこそ複数のファイルにコードを分けて書くこともできない。 ライブラリを作るのなどは、それこそ不可能だ。 しかし、C 言語はその欠点をマクロ言語を使い前処理することにより、強力な力を得た。C 言語以降もいくつもの高級言語が生まれてきたが、前処理を組み込んである言語

  • 苦しんで覚えるC言語

    [全ページ目次] 苦しんで覚えるC言語(苦C)は、初心者を対象としたC言語入門サイトです。 C言語の基機能を体系立てて解説しており、市販書籍と同等以上の完成度です。 初めての人は 前書き から読み始めて下さい。 キーボードの矢印キーか、右下の進む>で次のページに移動します。 コンパイラ入手:基礎編:応用編:標準ライブラリ 全文検索:ダウンロード版:苦Cアンケート:ミス報告:掲示板で質問 [  更新情報  ] 01月22日 : Visual C++ 2005 Express Edition 10月30日 : Borland C++ BuilderX Personal 10月07日 : 掲示板に寄せられたQ&A項目を作成 03月10日 : ドラッグへの対応 ※ミス報告で報告されたミスの修正は約100回以上行っています。 苦Cについて 苦Cの使用法(特に読まなくても良い

  • Optimization of Computer Programs in C

    Michael E. Lee Senior Programmer/Analyst Ontek Corporation 22941 Mill Creek Road Laguna Hills, CA 92653 USA Abstract: A substantial portion of a knowledge worker's life may be spent waiting for a computer program to produce output. Users and organizations control their wait time by purchasing faster computers, adding memory, or using faster network connections. Developers of application progra

  • Operators in C and C++ - Wikipedia

    This is a list of operators in the C and C++ programming languages. All the operators (except typeof) listed exist in C++; the column "Included in C", states whether an operator is also present in C. Note that C does not support operator overloading. When not overloaded, for the operators &&, ||, and , (the comma operator), there is a sequence point after the evaluation of the first operand. C++ a

    motemen
    motemen 2008/07/03
    演算子の優先順位
  • old phim webpage

    motemen
    motemen 2008/07/03
    intの範囲とか、覚えてない
  • 2005-10-11

    ちょっと3000文字がどの程度か測ってみよう。 やることがあるので、現実逃避のために、適当に書いておくことにする。いや、なんか、昇格するんだったら、3000文字の文章を書かないといけないとか。明日までに。いや、なんか、面倒だわ。 言語の力とライブラリの力を分けて考えよう、とかの話。多分。 おとといはqsortを書いたんだけど、qsortといえば、Haskellだ。Haskellといえば、「クイックソートを書くための言語」であることは、僕の中で有名な話だ。 http://web.yl.is.s.u-tokyo.ac.jp/~ganat/memo/aboutHaskell.htmlによると、 qsort [] = [] qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x where elts_lt_x = [y | y <- x

    2005-10-11
  • http://www.unknownplace.org/blosxom/coding/googletalk_hacks.html

  • tiny C compiler abstract

  • 1