タグ

C言語に関するshigiryouのブックマーク (50)

  • C言語入門

    メインページ 提供: C言語入門 移動: 案内、 検索 スポンサーリンク なぜC言語を学ぶのか? C言語解説 Cライブラリ C言語のマルチスレッドプログラミング C言語でGPGPUを用いた並列コンピューティング C言語の開発環境 Cコンパイラ gccコンパイラの使い方 C言語のソースファイルの拡張子 Cプログラムを逆アセンブルする方法 ユニットテストフレームワーク ソースコード解析ツール ツイート スポンサーリンク 「https://kaworu.jpn.org/c/index.php?title=メインページ&oldid=260」から取得 案内メニュー 個人用ツール ログイン 名前空間 ページ 議論 変種 表示 その他 検索 案内 メインページ 最近の更新 おまかせ表示 Cコンパイラ gcc clang C99 C11 マルチスレッド ヘルプ ツール リンク元 関連ページの更新状況 特別

  • Preventing Memory Leaks in Windows Applications - Win32 apps

    Affected Platforms Clients - Windows 7 Servers - Windows Server 2008 R2 Description Memory leaks are a class of bugs where the application fails to release memory when no longer needed. Over time, memory leaks affect the performance of both the particular application as well as the operating system. A large leak might result in unacceptable response times due to excessive paging. Eventually the ap

    Preventing Memory Leaks in Windows Applications - Win32 apps
  • make基礎知識

    暗黙ルール(implicit rule) 暗黙ルールを使って次のように書くのがよい. .c.o: $(CC) $(CFLAGS) -c $< -o $@ main.o: main.c sub.h sub.o: sub.c sub.h 暗黙ルールには,拡張子ルール(suffix rule)とパターンルール(pattern rule)がある. 上記の.c.oのようなのが拡張子ルール. %を使って各ルールをパターンルールというが, gmake拡張機能なので,古いmakeでは使えない. 特に必要がないのであれば,互換性の面から古いmakeで使える機能範囲のみを使ってMakefileをかいておくのが望ましい. .SUFFIXES 次のようにかくと..o,.cをサフィックスとして登録することができる. .SUFFIXES: .o .c この指定は,標準の.SUFFIXESに.oと.cを追加する動作にな

  • Makefileをいろいろ書き換えながらビルドしてみよう

    今回は、ビルド作業に必要な「make」というコマンドの使い方と、makeコマンドが実際にしている処理の内容を解説します(編集部) 暗黙のルールを理解する 前回はmakeの簡単な使い方を説明しました。たった1行の設定ファイルを用意すれば、makeコマンドだけでビルドできるようになったわけですが、今回はその仕組みを明らかにしていきます。ただ、連載の趣旨はソフトウェア開発ではありませんので、Makefileの書き方ということではなく、ビルドに必要なmakeの制御方法という側面から解説します。 さて、まずは前回使用したMakefileをもう一度見てみましょう。 このコロンで区切る書式は、Makefileを書くときに最初に覚えてほしい基礎的なところです。コロンの前の部分をターゲットといいます。コロンの後の部分は、ターゲットを作るのに必要なファイルを示しています。この例では、最終的な実行形式ファイル

    Makefileをいろいろ書き換えながらビルドしてみよう
  • もう一度基礎からC言語 第46回 makeによるマルチモジュール開発の合理化 makeとmakefile

    makeは上述したソースファイルの依存関係にもとづいて、コンパイルとリンクの処理を合理的に実行します。 makeの基動作 作成するプログラムによってソースファイルが異なるため、当然のことながら作成するプログラムごとに依存関係は異なります。そのため、makeは依存関係を記述した"makefile"を読み込み、それにもとづいてコンパイラやリンカを起動します。 開発者は、ファイルの依存関係を記述したmakefileを作成しなければなりません。makefileの基的な記述方法は、以下のとおりです。 生成されるファイル : 元になるファイルのリスト ファイルを生成するためのコマンドライン 「生成されるファイル」を「ターゲット」、「元になるファイル」を「ソース」と呼びます ※2 。 makeは上のような記述にもとづいて、「元になるファイルのリスト」が変更されていれば「ファイルを生成するためのコマン

  • コンピュータ基礎 講義資料(makefile編)

  • テスト駆動開発による組み込みプログラミング

    書は、すぐれた組み込みソフトウェアを開発するための手法を豊富なサンプルコードとともに解説するです。前半では、制約のある組み込み環境でテスト駆動開発を行うための基礎知識とノウハウを懇切丁寧に紹介します。後半では、オブジェクト指向をベースに考え出されたSOLID原則やリファクタリングをC言語に適用し、アジャイルな設計を実現するための方法を示します。さらに、レガシーコードへのテストの追加方法についてもサンプルコードを使って詳細に解説します。日語版には平鍋健児氏による 「日語版まえがき」を収録。テスト駆動開発を学びたい、アジャイル開発について知りたい、レガシーコードと日々格闘している、そんなすべての組み込みCプログラマ必携の一冊です。 目次 書への賞賛の声 日語版まえがき ジャック・ガンセルによるまえがき ロバート・C・マーティンによるまえがき はじめに 1章 テスト駆動開発 1.1

    テスト駆動開発による組み込みプログラミング
  • やり直しC言語:複雑な宣言の読み方

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

    やり直しC言語:複雑な宣言の読み方
  • C言語講座:初級から中級まで

    C言語講座>サイトマップ C言語講座:初級から中級まで プログラム言語は、自然言語とコンピュータ言語との間にある人工的な言語です。この講座では、C言語を学びます(開 設:2000.09.01)。 [サイトマップ][ガイダンス][C言語講座の出入り口][アルゴリズム研究室][ソースのコンパイル][C言語の作法][”C言語流”文章作成講座][お断り][使えるリンク集] [言葉は記憶の彼方へ] 死語、半死語、現行語、専門用語、業界用語、隠語。 [ハイテク昔話] 古い経験を、ただ古いだけの私がご紹介します。 [英単語に見える16進数] 病気か?死ぬの? [絵のない絵式乗馬教室] 頭の中に馬を飼ってみませんか。 [プロフィール] [パクられました。][またパクられました。][またまたパクられました。] リンクはご自由に。メールはfujinoy@+cts.ne.jp(”+”を削除)へ。 C言語講座>

  • Generic list manipulation function in C?

  • SGLIB - A Simple Generic Library for C

    1.) What is it about? Sglib is a library defining useful macros for manipulating common data structures. The library currently provides generic implementation for: sorting arrays manipulating linked lists manipulating sorted linked lists manipulating double linked lists manipulating red-black trees manipulating hashed containers A basic set of functions (macros) is provided for each data structure

  • Implementing a Generic Linked List in C | pseudomuto.com

  • C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD

    ビジターの皆さんへ C言語に関心を寄せていただきありがとうございます。このページは、C言語の面白い問題、パズルのリストです。これまでに友人たちからeメールで送ってもらったり、で読んだり、インターネットで見つけたり、あるいは自分でC言語でコーディングしていて気づいたりしたプログラムを集めました。 多くのプログラムは、コンパイル、実行され、その振る舞いを示すものです。問題は大まかに次のカテゴリに分けられます。 一般的なタイポエラー。C言語プログラマが頻繁に犯すミスであり、かつ追跡が困難。 初見では非常に理解しがたい小さなプログラム。これらの問題は、他人が書いた優れたコードを読み解く良い訓練になります。 また、全てにGnu/Linux/gccを使っています。掲載順は、それぞれの難易度とは関係ありません。問題解決の助けが必要な場合は、気軽に私に問い合わせてください。連絡先は こちら です。また、

    C言語パズル集:Cにまつわる興味深い問題あれこれ | POSTD
  • Object-orientation in C

    I would advise against preprocessor (ab)use to try and make C syntax more like that of another more object-oriented language. At the most basic level, you just use plain structs as objects and pass them around by pointers: struct monkey { float age; bool is_male; int happiness; }; void monkey_dance(struct monkey *monkey) { /* do a little dance */ } To get things like inheritance and polymorphism,

    Object-orientation in C
  • Object-Oriented Programming With ANSI-C

    v _ __________________________________________________________________________ Preface No programming technique solves all problems. No programming language produces only correct results. No programmer should start each project from scratch. Object-oriented programming is the current cure-all — although it has been around for much more then ten years. At the core, there is little more to it then f

  • How would one write object-oriented code in C?

    Ask questions, find answers and collaborate at work with Stack Overflow for Teams. Explore Teams Collectives™ on Stack Overflow Find centralized, trusted content and collaborate around the technologies you use most. Learn more about Collectives

    How would one write object-oriented code in C?
  • 【C言語/C++】関数ポインタと関数オブジェクトを使ってみる - めめんと

    関数ポインタを使う 関数ポインタはポインタの一種で文字通り関数のポインタの事で、関数を遠隔操作できるようになる文法です。たぶんほとんどの場合関数の引数として使うんじゃないかと思うのでそれだけ紹介します。 #include<stdio.h> int add(int a,int b){ return a+b; } int sub(int a,int b){ return a-b; } //関数ポインタを使っている int calc(int (*func)(int,int),int a,int b){ return func(a,b); } int main(void){ int x = 10; int y = -4; int ans1 = calc(add,x,y); //足し算をしている int ans2 = calc(sub,x,y); //引き算をしている printf("%d,%d\n

    【C言語/C++】関数ポインタと関数オブジェクトを使ってみる - めめんと
  • お手軽C言語でオブジェクト指向っぽいことに挑戦

    C言語でオブジェクト指向っぽいことに挑戦してみます。 はじめからオブジェクト指向言語を使えといわないでください(笑)。 これはTECHI Vol.15「リアルタイム/マルチタスクシステムの徹底研究」に 「Cによる抽象化プログラミング-抽象データ型の理由-」という章を読んで、 なるほどと思ったことのまとめです。この章の初出は1996年です。 といっても複雑なことをするのではなく、 「データ+手続き」をひとまとめにして取り扱いやすくするということを行います。 ところで、上記のに、 僕が、以前からおぼろげながら持っていた「オブジェクト指向」に近いものを感じました。 章のはじめにイラストが描いてあり、そこには「自分のことは自分でやろうそれがおとなだ」と いうプラカードをもったAbstractDataTypeくんがいます。プログラムの中で役にたってくれるのは、 まさに「自分のことは自分で面倒みれる

  • プログラミング演習III C++上級編

    オブジェクトの動的生成とポインタ このページでは、仮想関数を学ぶ上で必要となる基礎事項をまとめておきます。 オブジェクトのスコープとコンストラクタ・デストラクタこれまでは、クラスのインスタンスを関数の自動変数として作成して使ってきました。自動変数は、そのスコープに入った時にスタックと呼ばれる場所に自動的に作成され、処理の流れがスコープから抜けると自動的に消滅します。コンストラクタとデストラクタが定義されたクラスでは、それらも自動的に呼び出されました。 C++言語における(C言語でも同様)自動変数のスコープは、ブロックと呼ばれる単位で決定されることに注意しましょう。対応した中カッコで囲まれた範囲 {...} がブロックです。関数も一つのブロックで構成され、その内部の for ループや whileループ、if 文を実行する範囲もひとつのブロックとなります。ブロックは入れ子(ネスト)構造にするこ

    プログラミング演習III C++上級編
  • 動的メモリの割り当て

    new と delete これまでもちらほらと動的メモリの割り当てに関する話が出てきました クラスのメンバで、動的に割り当てたメモリへのポインタがあるとうんたらと言う話です しかし、具体的にまだ動的メモリの割り当ての話をしていませんでした おそらく、動的メモリの割り当てと聞くと malloc() 関数を思い出すでしょう C++はC言語を用いることができるので、当然問題はありません が、C++で malloc() を使うことはあまり推奨されません C++ では独自のメモリ割り当て演算子 new 演算子 があるからです new type; type には、割り当てるデータ型を指定します。クラス型も当然OKです new 演算子は malloc() と違って、割り当てるべきバイト数を自動で計算してくれます sizeof() 演算子を用いてこちらから指定する必要がないので、割り当てミスの原因の一つが