タグ

C言語に関するtasanobuのブックマーク (7)

  • 業務を通した技術習得の落とし穴

    業務を通した学習の落とし穴 新たな技術を習得するのに最も効率的な方法は、業務で使用している技術について学習することです。業務で使用していますので、すぐに業務に役立ちますし、多くの時間その技術に接しているため、効果的に学習することができます。 業務を通じての知識の蓄積は効果的なのですが、落とし穴もあります。それは、業務をこなすのに最低限必要な事柄だけしか学ばないで終わってしまうことです。 たとえば、何年もC言語を使用して組込みシステムを作ってきたエンジニアで、ポインタの使用方法を知らない人がいるとは想像できないかもしれませんが、実際には知らない人がいます。なぜ知らないかというと、グローバル変数を多用した設計しかしたことがなく、構造体であっても、決してパラメータとしてそのポインタを渡す設計をしたことがないからです。 長年同じ種類の開発を行っていて、自分は何でもできると思っても、それは、「井の中

    業務を通した技術習得の落とし穴
  • Interacting with C Pointers - Swift Blog

    Swift is now open source. For the latest news, visit the Swift open source blog Objective-C and C APIs often require the use of pointers. Data types in Swift are designed to feel natural when working with pointer-based Cocoa APIs, and Swift automatically handles several of the most common use cases for pointers as arguments. In this post we’ll look at how pointer parameters in C can be used with t

    Interacting with C Pointers - Swift Blog
    tasanobu
    tasanobu 2014/07/29
    Swiftで開発するにしても、まだまだC言語の知識は必要だな〜 CocoaがSwiftで書き直される日が待ち遠しい
  • C99の仕様

    長い歴史を持ちながら、依然として人気の高いC言語。その最新仕様の情報にキャッチアップするための連載スタート。今回は1999年に策定された「C99」を取り上げる。 連載 INDEX 次回 → C言語(以降、単にC)はDennis Ritchieによって1969~1973年の間にベル研にて開発されたプログラミング言語である。長い歴史を持つと共に非常にポピュラーな言語で、プログラマーでCを知らない人はまずいないと言っていいだろう。プログラミング言語のシェアを調査しているTIOBEでも、ここ最近は常に1、2位を占めている。 Cの言語仕様は今から25年近く前である1989年に初めて規格化され、これは一般に「ANSI-C」と呼ばれている。ANSI-Cは長らくCの言語仕様のスタンダードの位置を占め、世の中の大半のプログラマーは、このANSI-Cに慣れ親しんでいることだろう。しかし、実はCの言語仕様はその

    C99の仕様
  • softwaretechnique.jp

    This domain may be for sale!

    softwaretechnique.jp
  • LLVM が提案する C言語へのモジュール機能追加

    11月の LLVM developer meeting で Apple の Dong Gregor 氏が,C言語へのモジュール機能の追加に関するプレゼンテーションを行った。その要旨は次のようなものだ。 プログラマやツール一般にとって,Cプリプロセッサは昔から悩みの種でした。プログラマは拡大するマクロ汚染や行儀の悪いヘッダのインクルード順などの問題と戦わなければなりません。これらの問題を軽減するため,いつもさまざまな回避手段が用いられてきました。LONG_MACRO_PREFIXES や include ガード,場合によってはライブラリマクロの #undef といった方法です。 一方,ツールは同じヘッダを繰り返し処理することに関連した,マクロ特有のスケーラビリティに関する問題への対処を余儀なくされます。実行ごとに異なるプリプロセス処理のコンテキストによって,ヘッダの解釈される方法が影響を受け

    LLVM が提案する C言語へのモジュール機能追加
  • Cでのポインタの読み方

    Cでのポインタの読み方 Cのポインタの読み方は、ルールを知らないと摩訶不思議です。 ルールを覚えれば、 int (*p[5])[3]; char (*(*fp)(void))(int); なんてのも解読する事ができます。 大事な前程 ポインタを読む際には、「英語で読む」必要があります。 「え~、英語~」 と思う方もいるかもしれませんが、逆に日語で読む方が大変です。 基ルール ルール 後置演算子が優先。 関数の() 配列の[] 前置はあとで。 要は、「後ろに何かあったら、後ろが優先」です。 演算子の英語での読み方 * pointer to ... () function returning ... [] array of ... Lesson 1 まず、演算子が単独で出てくる場合です。 Lesson 1-1 pointer to ... int *p; これは、まずpを見ましょう。 i

  • 可変個引数マクロを使う - 職業としてのプログラミング

    C99規格(ISO/IEC 9899:1999 - Programming Language C)は1999年12月にISOによって規格化されたC言語の新しい規格です。従来のC言語(C89やANSI C)には含まれていない新機能が数多く規格として導入されています。以前の記事「bool型の落とし穴」で触れた_Bool型もC99の新機能の一つです。 今回、C99の新機能の中で個人的にかなり便利だと思っている「可変個引数(可変個数引数)マクロ__VA_ARGS__」と「定義済みマクロ__func__」を紹介します。 拡張マクロ機能の使用例 最近のデバッガは高機能化しているとはいえ、ログ出力(ロギング)によるデバッグが便利なケースはまだまだあります。拡張マクロ機能はこのようなログ出力の記述時に、力を発揮します。 例えば、次のようなログ出力関数があったとします。 void debug_printf(

  • 1