まず、動的確保ってなんなの?って人もいるかもしれないのでその説明から始めます。 C/C++ では、配列のサイズというものは必ずコンパイル時(静的)に分かってなければいけません。 double a[10]; // OK int n; cin >> n; // キーボードから入力 double b[n]; // NG コンパイルエラーになる 配列を確保するときには a[10] のようにサイズは定数でなければならず、int n のような変数をサイズに使うことはできません。 (const int は可、変数ではなく定数だから。) 配列のサイズを実行時(動的)に決めたい場合に動的確保というの行います。 #include <stdlib.h> int n; double * b; scanf( "%d", &n ); b = (double *)malloc( sizeof( double ) * n
regex.h C言語で正規表現を使うにはregex.hをincludeします。 具体的に利用する関数はregcomp(), regexec(), regfree()関数の3つです。 regcomp() 関数 int regcomp(regex_t *preg, const char *regex, int cflags) 正規表現のコンパイルを行なう。コンパイル成功時には0を返す。cflags には以下に示す定数一つ以上のビットごとの OR (bitwise-or) を指定する。 REG_EXTENDED regex に POSIX 拡張正規表現を使用する。もしこのフラグが設定されない場合、POSIX 標準正規表現が使われる。 REG_ICASE 大文字小文字の違いを無視する。 REG_NOSUB このフラグを設定してコンパイルされたパターンバッファが regexec の引数に指定される
stat関数は、ファイルやディレクトリの状態を取得します。 この関数は、C言語のライブラリ関数(標準関数)ではありませんので、コンパイラにより、使えない場合があります。
fileter関数は、文字列を空白で区切られた単語の列とみなし、パターンにあったものを返す。%文字は、任意の文字としてパターンに使用できる。
makeってなに?¶ ソースファイルを分割して大規模なプログラムを作成していると, コマンドでコンパイルするのが面倒である. また, 一部のソースファイルを書き換えだけなのに全部をコンパイルし直すのは時間の無駄である. そんな問題を解決するのが make である. Makefile と呼ばれるテキストファイルに必要なファイルと各ファイルのコンパイルのコマンド, ファイル間の依存関係を記す. そして, “make” というコマンドを実行するだけで, 自動的にコマンドを実行してコンパイルしてくれる. これだけではスクリプトと大差がないのだが, make は Makefile に記された依存関係に基づいて更新されたファイルの内関連のあるものだけを更新することで, コンパイル時間を短くする. make は特定のプログラミング言語に依存したものではない. C 言語のソースファイルのコンパイルにも使え
いつも忘れてしまうので個人的メモ 静的ライブラリっていうのは 要はただのオブジェクトファイル(*.o)の集合です Linuxならファイル名が*.aのものは静的ライブラリで、*.so.*のものは動的ライブラリです(Windowsの場合は*.dll) オブジェクトファイルの作り方 例えばhoge1.cとhoge2.cというソースがあったら % gcc hoge1.c hoge2.c -c でhoge1.oとhoge2.oが作成されます arコマンドを使って1つにまとめる ライブラリを作りたいとき % ar r libHoge.a hoge1.o hoge2.o これでlibHoge.aが作成されます! ライブラリの中身を見たいとき % ar t libHoge.a とすると hoge1.o hoge2.o と表示される ライブラリに追加したいとき 例えばさらにhoge3.oというオブジェクトフ
はじめに 当講座のご案内 本屋さんのコンピュータ言語書籍売場に行くと、いまだに「C言語」関連の書籍が一番多いように思います。いまだにと書いたのはVBやJava、PHP、Ruby、等たくさんの言語が有るにもかかわらずに多いということです。これはどういうことかというと、JavaやPHPはC言語をお手本にして開発された言語なので、C言語を知っていれば、それらの言語をマスターし易いということだと思います。 また、もともとC言語はUNIXオペレーティングシステムを記述することを目的に開発された言語ですので、UNIXをお手本に開発されたLinuxもC言語で記述されています。従って、Linuxをより深く理解しようと思うと、C言語に関する知識が必要になってきます。 この講座では初心者から中級者向けに、易しく説明していきます。また、説明は次の条件で行います。 文法についてはANSI(American Nat
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く