タグ

cに関するpaselaのブックマーク (18)

  • const int よりも int const と書こう、という提案 - 株式会社CFlatの明後日スタイルのブログ

    ……という提案を、試しにちょっとしてみます。 ポインタ型とconst C++er の皆さん、次のコードを正しく説明できるでしょうか? int hoge = 42; const int * p1 = &hoge; int const * p2 = &hoge; int * const p3 = &hoge; もちろん答えはこうなります: int hoge = 42; const int * p1 = &hoge; // p1の指示先を書き換える事はできないが、p1の指示先自体は変更可能 int const * p2 = &hoge; // p1と同じ int * const p3 = &hoge; // p3の指示先を書き換える事はできるが、p3の指示先自体は変更不能 つまり、constが*の前後どちらにあるかで意味が変わってくるわけですね。 この仕様は、知っている人にとっては不思議でも何で

    const int よりも int const と書こう、という提案 - 株式会社CFlatの明後日スタイルのブログ
  • Big Sky :: clib の使い勝手にマジ感動した

    C言語でアプリケーションを書くのは他の言語と比べて少し気合が必要ですよね。例えば HTTPからデータを取得する 取得したデータを json パースする 結果の一部を色付きで表示する こんな場合、C言語プログラマは 「HTTP か、じゃぁcurlかな」 「JSON か、parson かな」 「色表示か...エスケープシーケンスでもいいけどWindowsがなー...」 といった事を考え、そこから curl や parson といった資材の調達を始める事になります。途中で新しい機能を追加したくなり、それを外部ライブラリに頼る場合だとその都度資材を調達する必要があり、思考を停止しなければなりません。 この辺は rubyperl、nodejs、golang 等の様に、ちょっとした手間だけで済ませたい物です。 またC言語の場合、ヘッダファイルはシステムの include フォルダに提供元が期待す

    Big Sky :: clib の使い勝手にマジ感動した
    pasela
    pasela 2014/06/28
  • EclipseでC言語開発 | ruless-works.com memo

    開発環境の選択 C言語の学習のための開発環境を用意せねばなりません。 「やさしいC」のの中ではMicrosoft Visual開発環境の選択 C言語の学習のための開発環境を用意せねばなりません。 「やさしいC」のの中ではMicrosoft Visual C++を紹介していました。 しかし、私は会社で開発環境としてEclipseを使用していて、多少は慣れているのでC言語の開発環境としてもEclipseを使うことにします。 以下、覚えている範囲で手順メモ_φ(・ω・) Java SE Development Kitインストール C:\Program Files\Javaを確認したところ、jre*というフォルダはあれど、jdk*というフォルダはありませんでした。 なので、Eclipseインストール前に下準備として、オラクルのJava SEダウンロードページから、 JDK 7をダウンロー

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

    苦Cの内容の転載などは自由ですが、苦Cからの引用であることを明記してください。 (どこかに「苦Cより」と書かれていればOKです。) 学校や会社などで生徒(新入社員)へのテキストとして使用することも自由です。 その際、内容を修正したり、印刷して配布するのも自由です。

    総合目次 - 苦しんで覚えるC言語
    pasela
    pasela 2010/11/22
  • http://www.hi-matic.org/diary/?200709a

  • 64bit CPUに伴う型変更 — Soft x-ray beamline at SPring-8.

  • C CodでCコードをスクリプトのように扱う - SourceForge.JP Magazine

    C Codは、C、C++、またはObjective-Cコンパイラのフロントエンドとして、C言語をスクリプティング言語のように扱うことを可能とするものである。C Codには、C Server Pagesが付属している。C Server Pagesは、ウェブアプリケーションをCまたはC++で記述し、それをオンデマンドで自動的にコンパイルできるようにするために、CGIをサポートする。 Ubuntu、Fedora、openSUSE用のC Codパッケージは存在しない。今回は、64ビットのFedora 9マシン上でバージョン1.2.8のソースをビルドした。コンパイル中に小さな問題が生じたが、以下に示すように、CFLAGSにposition-independent code(PIC)のオプションを加えることにより解決することができた。PICコードは、メモリの別の場所にロードすることができるという利点が

    C CodでCコードをスクリプトのように扱う - SourceForge.JP Magazine
    pasela
    pasela 2008/11/21
  • 【ハウツー】今こそ再考察! C言語ポインタ徹底解説 (1) ポインタと1次元配列の関係 | エンタープライズ | マイコミジャーナル

    C言語は、ポインタが使える言語です。ポインタを使えば、メモリの直接的な操作など、より柔軟なプログラミングが可能です。一方、そのためにはポインタがどのようなメモリ領域を指し示しているか、またポインタ自体が有効なアドレスを保持しているかなどについて十分な理解が必要です。 稿では、C言語のポインタについて、配列との対比に焦点を当てて解説を行います。 *** C言語では、ポインタを配列のように扱うことができます。また、配列名はポインタに変換可能で、別のポインタに代入できます。 まずは1次元の場合について、ポインタと配列の関係を考えてみましょう。 宣言文の記述 いま、ポインタと配列を次のように宣言したとします。 char *p; ← char型へのポインタpを宣言 char a[5]; ← char型を要素とする、要素数5の配列aを宣言 この宣言の結果を図にすると、図1、図2のようになります。 図

    pasela
    pasela 2008/04/18
  • Trigraph - みねこあ

    やっぱりマニアくらいしか知らない仕様があって、例えば C の Trigraph なんてのがあります。 これは、# とか \ とか [] とか無い文字セットしかない場合でも C のコードが書けるようにという ANSI規格化のときに追加された配慮で、以下のような対応になっています。 Trigraph Equivalent ======== ========== ??= # ??/ \ ??' ^ ??( [ ??) ] ??! | ??< { ??> } ??- ~Digraphs and trigraphs - Wikipedia この Trigraph を使うと、例えば #include <stdio.h> int main( void ) { char hello_str[] = "hello,world"; int i; for (i = 0; i < sizeof(hello_str

    Trigraph - みねこあ
    pasela
    pasela 2008/04/17
  • テキスト処理もPOCOにおまかせ:CodeZine

    はじめに 記事ではPOCO(C++ Portable Componentsの略)というオープンソースのC++用クラスライブラリを紹介します。POCOはコンポーネントとして6つのライブラリにわかれており、前回は、その中のPOCO::Foundationライブラリから、Loggingに関するクラス群を紹介しました。 POCO::Foundationライブラリは、名前のとおり基的な処理を行うクラスを集めたもので、そのまま実践に使えるクラスが豊富に含まれています。今回からしばらくは、そんなPOCO::Foundationライブラリから、テーマごとにクラスをピックアップし、サンプルコードを交えて解説していくことにします。今回のテーマは、テキスト処理を取りあげました。また、POCOには含まれていないシフトJISとUTF-8の相互変換関数のソースコードも公開しています。これまでの記事POCO::Ne

    pasela
    pasela 2008/01/30
  • POCO C++ Libraries - Reference Library

    POCO C++ Libraries Reference Library User Guides And Tutorials Introduction A Guided Tour Of The POCO C++ Libraries Getting Started With The POCO C++ Libraries Acknowledgements POCO C++ Libraries Release Notes POCO C++ Libraries GNU Make Build System POCO C++ Libraries Windows Platform Notes POCO C++ Libraries Windows CE Platform Notes POCO C++ Libraries VxWorks Platform Notes POCO C++ Libraries A

    pasela
    pasela 2007/12/05
  • 5分で使えるLoggingフレームワーク - POCO::Foundation -:CodeZine

    はじめに 記事ではPOCO(C++ Portable Componentsの略)というオープンソースのC++用クラスライブラリを紹介します。 POCOに関する概要とその導入方法については、別稿『POCO::Netライブラリによる組み込みWebサーバの実装』を参照してください。POCOはコンポーネントとして6つのライブラリに分かれていますので、今回からは、ライブラリ単位で順番に紹介したいと思います。まずは、POCO::Foundationライブラリをとりあげます。名前の通り基機能を集めたライブラリで、実際のアプリケーション開発にそのままでも使えるクラスが揃っています。対象読者 オブジェクト指向を理解し、C++のクラスライブラリを活用できる方を対象としています。必要な環境 POCOは、多様なプラットフォームで動作可能で、WindowsMac OS X、Linux、HP-UX、Tru64、

    pasela
    pasela 2007/12/05
  • CodeZine:Google、C++開発者のための4つのライブラリを公開(オープンソース, グーグル)

    Googleは、C++開発者のための4つのライブラリを公開している。 公開されているのは、C++/Python向けコマンドラインライブラリ「gflags」、高速なマルチスレッドmallocのコレクションで、TCMalloc、heap-checker、heap-profiler、cpu-profilerを含む「perftools」、パフォーマンスの高いハッシュマップを実現している「sparsehash」、基的だが使い勝手のよいテンプレートの「ctemplate」。それぞれ無償でダウンロードすることができる。 詳細は下記Webサイトを参照のこと。 Google Code Four Google open source tools on Google Code google-gflags google-perftools google-sparsehash google-ct

  • memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話

    Cのソースコードに m = 195; とか n = 0xffffffff; とか書いたときの定数(右辺)の型って、なんであるかご存じでしょうか? また、C90(1990年版のISO C言語規格)とC99(1999年版のそれ)ではその型が微妙に異なったりすることがあるんですが、ご存じでしょうか? さらには、お使いのマシンがILP32であるかLP64であるかLLP64であるかによっても、微妙に型が違ってきたりするんですが、それについてはどうでしょうか? えーもちろん、普段は「Uがついてなかったらint, Uがついてたらunsigned intジャネーノ?」くらいの理解でも殆ど不自由しないわけですが、詳細な理解がないとハマるケースも稀にあります。 私はというと、上に書いたような事は、C90/99の差違を除いてはだいたい理解しているつもりだったのですが、C90/99の差異について無頓着だったがため

    memologue - C/C++の定数の型の話, C90/C99の差分のびみょーな話
    pasela
    pasela 2007/02/06
  • Part2 C/C の疑問にまとめてお答え - C/C は永久に不滅です!:ITpro

    Part2では,「そもそもC/C++についてよくわかっていません」という方のために,C/C++言語に関する素朴な疑問をQ&A形式でお答えします。“今さら人には聞けないなぁ”というような疑問も取り上げていますので,初心者の方でも安心して読んでください。 C/C++の最大の魅力は,コンピュータでできることなら,ほとんどどんな種類のプログラムでも比較的簡単に書けることです。 CがもともとOSを記述するために作られたことは特集1でも触れました。OSの役割をおおざっぱにいうと,ハードウエアの機能を使いやすい形でアプリケーション・ソフトに提供することです。アプリケーション・ソフトは基的にOSが提供する機能を利用して動くプログラムですから,OSを作れる言語であれば,事実上どんなアプリケーションでも作れることになります。 パソコンに関していえば,Cの処理系がいくつかのベンダーからコンパイラとして提供され

    Part2 C/C の疑問にまとめてお答え - C/C は永久に不滅です!:ITpro
    pasela
    pasela 2006/12/18
  • Part1 C/C++は永久に不滅です!

    C言語はきわめて息の長いプログラミング言語です。1960年代終わりから1970年代初頭にかけて誕生し,以後現在に至るまでの30年以上,ずっと第一線で使われ続けてきました。そしてこれからも,C言語とその子供であるC++は現役の言語として使われ続けていくでしょう。なぜならC/C++は,今日のコンピュータ環境に欠くことのできない存在になっているからです。 図1を見るとわかるように,C/C++はOSからビジネス・ソフトまでありとあらゆるソフトウエアの開発に広く利用されています。その用途は汎用コンピュータ向けプログラムの開発にとどまりません。組み込み機器からスーパー・コンピュータに至る特殊用途のプログラミングまでコンピュータがかかわるあらゆる分野でC/C++が活躍しています。メモリー容量などに大きな制約がある組み込み機器のプログラミングなどは,コンパクトなコードを出力できるC言語はうってつけですし,

    Part1 C/C++は永久に不滅です!
    pasela
    pasela 2006/12/18
  • PythonMatrix:C++開発統合環境の決定版!

    【1.1】   特徴 オープンソース GPL2ライセンスによる公開です。 クロスプラットフォーム wxWidgetsを使って開発されており、LinuxWindowsで動作確認済み。 MacPPCへのサポートが始まっているようです。 GNUコンパイラによるビルド プロプライエタリなライブラリへの依存がありません。 コンパイラーをバンドル Windows版はMinGWをバンドルしたリリースパッケージを用意 リリース版はインストーラ一発で開発環境のセッティングが完了する。 サポートコンパイラが豊富 GCC (MingW / Linux GCC) MSVC++(2003 2005) Digital Mars C++ Borland C++ 5.5 Intel C/C++ Open Watcom SDCC(ワンチップマイコン向け!) Digital Mars

  • 再入不可能な関数を C で実装する - いやなブログ

    再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ

    pasela
    pasela 2006/08/12
  • 1