タグ

C言語に関するmeganeyamadaのブックマーク (8)

  • Cプリプロセサを使い、#includeディレクティブにマクロで生成したファイル名を読ませる - ioriveur longer log

    タイトルのとおりだが、難しいぞ。 例えば、こういうのなら簡単だ: #define _CONCAT(X,Y) X ## Y #define CONCAT(X,Y) _CONCAT(X, Y) #define HEY(X) CONCAT(X, X) #define YO yo int HEY(YO); int yoyo;になるはず。 この、一段プリプロセサの命令を使う前に展開させるためのクッションを入れるテクを使うと、例えば、 #include CONFIGFILE(def) が、 #include "defconfig" になってほしいなら、 #define QUOTE(X) # X #define QUOTIFY(X) QUOTE(X) #define _CONCAT(X,Y) X ## Y #define CONCAT(X,Y) _CONCAT(X, Y) #define _CONFIG

    Cプリプロセサを使い、#includeディレクティブにマクロで生成したファイル名を読ませる - ioriveur longer log
  • やり直しC言語:配列はファーストクラスではなかった

    C言語を久しぶりに触ってやっと理解できたのが、配列は第一級オブジェクト(ファーストクラスオブジェクト) ではない 、ということです。 第一級オブジェクト - Wikipedia 第一級オブジェクト Wikipediaによると、第一級オブジェクトと呼ばれるものは以下の様な特徴を持つそうな。 無名のリテラルとして表現可能である。 変数に格納可能である。 データ構造に格納可能である。 それ自体が独自に存在できる(名前とは独立している)。 他のものとの等値性の比較が可能である。 プロシージャや関数のパラメータとして渡すことができる。 プロシージャや関数の戻り値として返すことができる。 ... C言語だと、int(1, 2)やchar('a', 'b')、floatやboolなどがこれに相当します。また、任意の型へのポインタも、同じ性質を持っています。 私はC言語を真面目に勉強する前にJavaScr

    やり直しC言語:配列はファーストクラスではなかった
  • やり直しC言語:複雑な宣言の読み方

    C言語は宣言文が非常に読みにくいことで有名で、後発のGo言語はこれを批判して宣言の構文を変えています。私もずっと読むのが苦手だったのですが、私の頭が悪いのではなく、C言語の仕様がヘン、ということらしい。 今まで飽きるほどこの手の解説は書かれてきてるわけですが、自分なりにまとめないと覚えた気がしないので、あえてまとめておきます。ここに書いてある内容は、「C言語ポインタ完全制覇」に詳しく書いてあります。 型の派生 C言語では、int, char, floatなどの基型から、配列やポインタを派生していくことができます。対象を並べたものが配列で、対象を指し示すのがポインタです。 配列やポインタからも配列やポインタを派生できるので、派生パターンは無限に存在します。 int int の配列 int の配列 の配列 ... int へのポインタ int へのポインタ へのポインタ ... int への

    やり直しC言語:複雑な宣言の読み方
  • TAILQ のソースを読んで C のポインタをマスターする。 - こせきの技術日記

    正月は TAILQ のソースを読んでいた。普段 C を読み書きしないので、とても勉強になった。ポインタの使い方がわかった(ような気持ちになれた)。 TAILQって? TAILQ は C のマクロで書かれた双方向リンクリストの実装。 連結リスト - Wikipedia BSD、OSX や glibc に含まれている。 http://freebsd.active-venture.com/FreeBSD-srctree/newsrc/sys/queue.h.html http://sourceware.org/git/?p=glibc.git;a=blob_plain;f=misc/sys/queue.h;hb=HEAD 基的な使い方は以下のページが参考になった。 Tail queue(TAILQ) C言語系/「デーモン君のソース探検」読書メモ/14, man.conf - Glamenv-S

    TAILQ のソースを読んで C のポインタをマスターする。 - こせきの技術日記
  • 目指せ! Cプログラマ - @IT

    プログラミング言語の基となる「C」の正しい文法や作法を身に付けるための初心者向けの入門連載です。C言語とは何かの基礎知識から、Windowsで学ぶための開発環境のインストールの仕方、デバッガの使い方、さまざまな基構文/文法(変数、定数、型、演算子、ifやswitchなどの条件分岐、whileやforなどの繰り返し(ループ)、関数、識別子の有効範囲、派生型、ポインター、標準ライブラリ、プリプロセッサなど)を、書き方が分かる豊富なサンプルコードとともに解説します。

    目指せ! Cプログラマ - @IT
  • シンプルで応用の効くmakefileとその解説 - URIN HACK

    シンプルで応用の効くmakefileとその解説 makefileは一度作るとそれ以降編集する機会が少なくなるので意外と真面目に考える人は少なく、ネット上でもまとまった情報は多くない。 Linux系OS上(正確に言うとGNU MakeとGCC)で複数のC/C++ソースファイルから1つの実行ファイルを作成(make)するための汎用的なmakefileテンプレートを作った。名前はまだない。適宜ディレクトリ構成や設計などに従ってmakefileをカスタマイズする必要があると思うがそのベースにする。 このmakefileのいいところ コンパイル対象となるソースファイルをワイルドカードで指定できる。 ヘッダファイル、ライブラリ、オブジェクトファイルなどコンパイル、リンクに関連するどのファイルが外部で変更されていてもきちんと 差分 コンパイルされる。 makefile自体に説明書(この記事)がある。 C

  • Cプログラミング診断室

    はじめに 開院準備 昔むかし/ レベル差/ 教育/ ネットワーク/ 情報集め/ 隠すことについて/ プログラムコンテスト/ ドキュメント/ 楽するように/ 手抜きと下手の違い/ 開院 第1部 外来 第1章 普通の初心者 最初から充実した(!?)プログラムが登場 関数を短くし、コメントを改善する 上手になる秘訣/ プログラムの紹介/ 何だ、このプログラムは!!/ 短くするには/ コメントについて/ 無駄な努力をやめよう/ 名前/ 気になる個所/ 修正プログラム/ 課題/ まとめ 第2章 これでもプロ 売りものであるにもかかわらず、超きたない! 構造的な欠陥の指摘〜引数、ポインタの活用 プログラムの紹介/ 「超」基的問題点/ 関数分解/ 構造的欠陥/ 引数を使おう/ ポインタ/ その他/ まとめ(修正プログラム) 第3章 上司が問題 まさに驚異的なプログラムの見というべき 内容の修正から、

  • 総合目次 - 苦しんで覚えるC言語

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。 サイトについて 苦しんで覚えるC言語(苦C)は C言語入門サイトの決定版です。 C言語の基機能を体系立てて解説しており、 市販書籍と同等以上の完成度です。

    総合目次 - 苦しんで覚えるC言語
    meganeyamada
    meganeyamada 2015/04/24
    おさらいすっか……。
  • 1