タグ

Cに関するHoshi-KNのブックマーク (21)

  • シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita

    漢は黙ってシングルファイル C/C++ ライブラリですね! シングルファイル C/C++ ライブラリとは, ヘッダファイル .h ひとつだけで機能が実装されているライブラリ(もう少し条件をゆるくして .cc も含む)のことです. header-only とも言われれたりします. このあたりの元祖は nothings 先生 http://nothings.org/ ですね. 最近は github にコードをあげています. https://github.com/nothings/stb シングルファイル系のライブラリまとめ一覧もあります. シングルファイル系が便利すぎてやばいので, 自分でもいくつか作りました. TinyObjloader(Wavefront .obj loader) https://github.com/syoyo/tinyobjloader TinyEXR(OpenEXR

    シングルファイル C/C++ ライブラリが便利すぎてやばい - Qiita
    Hoshi-KN
    Hoshi-KN 2015/11/29
  • C99の複素数ライブラリがクソすぎる。

    C99では、複素数ライブラリが採用された。たとえば3.0 + 4.0iの複素数を書きたい場合、GNU拡張では、以下のように書く。 #include <complex.h> double _Complex x = 3.0 + 4.0i ; complex.hをincludeすれば使えるようになる。見た目はそのまんまだ。 これはGNU拡張であって、C99の規格による正式な書き方は以下の通りだ。 float _Complex x = 3.0 + 4.0 * _Complex_I ; _Complex_Iは、"0+1i"を意味する虚数単位定数であり、にかければ任意の虚部を表現できる。あとは実部を足せばいい。 どうやら、C標準化委員会は、まともな名前を考えつかなかったらしい。まあ、大方のきれいな名前は、既存のソースコードと衝突してしまうから、アンダースコアに大文字で始まる予約語を使うしかないのだろう

    Hoshi-KN
    Hoshi-KN 2013/11/16
  • 革命の日々! readdir_r は使ってはいけないという話

    Unixの世界には readdir_r()というAPIがある。readdir()のthread safe バージョンとしばしば紹介されている。 それぞれの関数宣言は以下 http://man7.org/linux/man-pages/man3/readdir_r.3.html struct dirent *readdir(DIR *dirp); int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result); struct dirent { ino_t d_ino; /* inode number */ off_t d_off; /* not an offset; see NOTES */ unsigned short d_reclen; /* length of this record */ unsigned

  • scandirかopendirか悩んでみた。: Xo式 実験室(labo.xo-ox.net)

    Hoshi-KN
    Hoshi-KN 2013/11/15
    versionsortが用意されてない環境だったけど、ここを参考にscandir後にqsortでなんとかなった。opendirしてreaddir使えよって話だけど、少しでも手を抜きたかったわけで。
  • C言語は今でも価値のある言語か?

    Couchbaseの作者Damien Katz氏は,C言語はバックエンドプログラミングにおいて現在でも優れた言語である,という意見を持っている。しかし他の開発者は,C言語はあまりにも欠陥が多いとしてC++Javaを支持するもの,あるいはいずれも好まないというものなどさまざまだ。 CouchDB の開発者であるDamien Katz氏は,The Unreasonable Effectiveness of C と題した先日のブログ記事において,C言語がバックエンドのための優れた言語であると断言した。氏はC++Java,さらにはErlangやRubyのようなより現代的な言語よりも,今後もC言語を支持していくつもりだという。ただし単純に,C言語を他のどれよりも優れた言語だと言っている訳ではない。"言語自体のパフォーマンスと信頼性が重視される場面においては,C言語に比類する言語は皆無である",別

    C言語は今でも価値のある言語か?
    Hoshi-KN
    Hoshi-KN 2013/01/30
  • 2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵

    12ステップで作る組込みOS自作入門 出版社 : カットシステム (2010/05) 発行日 : 2010/05 前回の初めてのC言語で『30日でできる!OS自作入門』の通りに初めてのOSを作ってみた - 三等兵は汎用OSでしたが今度は組込みOSです。参考書は『12ステップで作る組込みOS自作入門 』です。こいつぁすげえや。丁寧に仕上げられた良書でした。 「組込み」とタイトルがついているので興味を示す層が狭そうですが、プログラムを書く多くの人にとって役立つ内容だったと思います。 前回は必死にわかんないーわかんないーを連呼しつつ頭を抱えて苦行みたいな感覚でやっちゃいましたけど、今回はそんな苦労もあったからか余裕を持って楽しめました。 書ではWindowsだけではなくLinuxでも開発できるよう解説されているのでどんな環境でも問題ありません。Linux入れるのがめんどくさかった私は例によって

    2回目のC言語で『12ステップで作る組込みOS自作入門 』の通りに組込みOSを作ってみた - 三等兵
  • ポインタの裏話

    ポインタの裏話 岡﨑 直観 okazaki at ecei.tohoku.ac.jp http://www.chokkan.org/ @chokkanorg ポインタの裏話 プログラミング演習A 1 このような説明を 覚えていますか? 知らなくても全く問題ありません ポインタの裏話 プログラミング演習A 2 int x = 0; &xは変数xの「アドレス」 「番地」「住所」を返す 変数x 0 &x メモリ空間, 記憶空間 変数xのアド レス(住所) ポインタの裏話 プログラミング演習A 3 ____ / \ 何言ってたんだこいつ? / ⌒ ⌒\ 番地 アドレス ぬるぽ / (●) (●) \ \ / | 、“ ゙)(__人__)" ) __________ \ 。` ⌒゚:j´ ,/ j゙~~| | | | __/ \ |__| | | | || / , \n||

    Hoshi-KN
    Hoshi-KN 2012/06/04
    一瞬、吉崎観音かと思った。
  • データ型のアラインメントとは何か,なぜ必要なのか?

    以前このサイトとブログに,何度かアラインメントに関する記事を書きました (サイト内関連ページ参照). そのせいか「アラインメント」で検索して来てくれる人が多いので, 過去の記事に加筆修正してこのページを新たに作成しました. 加筆した点は次のとおりです. アラインメントとメモリアクセス回数の関係をわかりやすくするため, (ほんの少し) 図を導入しました. 「データがアラインされていないとメモリアクセス回数が増える」 と言葉で説明しているサイトは多いのですが, 図で示しているところはまだ見たことありません. アラインされていないアドレスにデータを書き込む場合, 読み出しの場合以上にメモリアクセス回数がかかる可能性があることを追記しました. 以前は「複合データ型 (配列,構造体,共用体) のアラインメント」はほとんど自明のことだと思っていたので軽く流していましたが, 意外なことにこれを解説してい

    Hoshi-KN
    Hoshi-KN 2012/05/05
  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
  • 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

    Hoshi-KN
    Hoshi-KN 2012/01/21
    なるほど。しかし、こんなコードは読みたくないなあ。
  • やさしいCプログラミング

    このは,これからプログラミングを学ぼうとする初心者のために, 基的な事柄について解説しています.書の目的は,プログラムの よい書き方(プログラミング書法またはプログラミングスタイルと 呼ばれる)を身につけるきっかけを提供することです.読者には, コンピュータやプログラミングについての特別な知識は期待して いません.書で使用するコンピュータ言語は,Cよりはプログ ラミングの教育に適したModula-2風の疑似言語です.この言語は C言語が持つ文字列を置き換える機能(マクロ定義)を使って見 かけを変えているだけで,C言語そのものです.初心者がModula-2風C を用いることの利点は, プログラムを読みやすく,文法を覚えやすくする, C言語特有のわかりにくさを緩和する, C言語特有の起こしやすいエラーを未然に防ぐ, C言語特有の落し穴をふさぐ, C言語特有の曖昧な制御構造を避ける, 等

    Hoshi-KN
    Hoshi-KN 2012/01/15
    なにが"C言語そのものです"だよ。全然別のものじゃん。
  • emacsでインテリセンス - NO!と言えるようになりたい

    CEDETなるものを使うとわりと簡単にできるらしいので,導入してみた. http://cedet.sourceforge.net/ ダウンロードして解凍して,コンパイルを適当に行う. $ cd cedet-1.0pre7 $ make $ pwd /path/to/cedet-1.0pre7.emacsに設定を追加 ;; CEDET (load-file "/path/to/cedet-1.0pre7/common/cedet.el") (require 'semantic-gcc) (semantic-add-system-include "/opt/local/include" 'c++-mode) (semantic-add-system-include "/opt/local/include" 'c-mode) (semantic-load-enable-gaudy-code-he

    emacsでインテリセンス - NO!と言えるようになりたい
    Hoshi-KN
    Hoshi-KN 2010/07/21
    試してみよう。
  • 龍神録プログラミングの館

    管理人の新作ゲーム「四聖龍神録2」公開開始! ※現在はより適切な設計手法で紹介した龍神録2プログラミングの館があります。 ============================================================================ 龍神録プログラミングの館では、誰にでも龍神録(東方のようなSTG)が作れるような解説を行っています。 難しい構文は使わず、初心者にもわかり易い構文のみで紹介しているので 基的なC言語の知識と、DXライブラリの知識さえあれば、誰にでも龍神録は作れます! ゲームプログラミングの館でDXライブラリに慣れたら、今度は格的なゲームを作ってみましょう! ↓ゲーム紹介動画↓ ご存じない方は是非四聖龍神録Plusを遊んでみて下さい! 全ての章のプロジェクトを一括ダウンロードする場合はこちらをクリック ※ 配布しているプロジェクト

  • プログラミング言語 C の新機能

    7. 文法一般 この章では C 言語に新たに加えられた指示付きの初期化子や複合リテラルといった文法や、暗黙時の宣言に関する変更といった、変更された文法について説明します。 7.1 暗黙の関数宣言 現在の C 言語の規格では、ある関数から他の関数を呼び出す時、とくにその関数のプロトタイプを宣言しなくても使用することができました。例えば stdio.h を読み込まずに、printf を使用するといったことです。しかし、今度の C 言語ではそのような場合、その関数の呼び出しは規格上未定義の動作となります。ただ実際には多くの処理系では警告を出してコンパイルするよう実装されることでしょう。この辺の機能は C++ に近くなっていますね。 7.2 宣言時の暗黙の型 手続き型言語では、一般的に変数や関数などを宣言して使用する必要があります。もちろん C 言語も例外ではありません。しかし C 言語では特に型

    Hoshi-KN
    Hoshi-KN 2010/06/11
  • やる夫と学ぶプログラミング言語 C | スラド デベロッパー

    AA(アスキーアート)を用いて歴史上の出来事・ゲームの内容・調理法など様々な内容をストーリー形式で紹介するやる夫シリーズに、プログラミング言語Cを紹介するスレッドが出ていたようだ(まとめサイト第1話、第2話、第3話、最終話:プログラムの内容については第2話から)。 内容はprintf/scanfを使った標準入出力、if/while、switch、関数はmain()のみなどポインタ以前のC言語について解説したもの。main()のみだが、初心者に変数がグローバル変数だけと思わせるような筋、stdio.hをインクルードする理由を解説しない点についてはタレこみ人はどうかと思うが、C言語のとっかかりとしてコミカル(若干)に解説してるものとしては面白い試みだと思う。

  • プログラムはどう動くのか? 〜 ELFの黒魔術をかいまみる

  • プログラミング言語Cについて知ろう

    プログラミング言語の基となる「C」。正しい文法や作法を身に付けよう。Cには確かに学ぶだけの価値がある(編集部) プログラミング言語Cは開発の仕事に役立つ人気のあるプログラミング言語です。 この連載では、Cでのソフトウェア開発をこれから始めようという方や、使った経験はあるが勉強し直したいという方のために、基をきちんと押さえながら勉強できるような解説をしていきます。 なるべく正しい文法や作法を身に付けていただくためにJIS規格を基に解説しますが、それだけにこだわらず実際の開発で役に立つことを分かりやすくお伝えしていきます。 Cの成り立ちと規格 まずは、Cの成り立ちと規格について知っておきましょう。ちょっと堅苦しい感じがするかもしれませんが、歴史を知っているとなぜこういう書き方をするのか、こういった機能があるのかといったことが分かります。また、規格を知っているとプログラミングをしていて何か

    プログラミング言語Cについて知ろう
  • http://spdg1.sci.shizuoka.ac.jp/grwinlib/

    Hoshi-KN
    Hoshi-KN 2009/10/10
  • Language C FAQ

    C言語 FAQ 日語訳 このページは北野 欽一さんが日語訳されたC FAQをHTML化したものです。 著作権等に関しては「C言語FAQと日語版について」をご覧ください

    Hoshi-KN
    Hoshi-KN 2009/10/10
  • ソースコードを読むための技術

    $Id: readingcode.html,v 1.13 2003/12/06 00:01:08 aamine Exp $ 2006-05-02 gonzui 追加。thanks: 冨山さん 2003-12-03 ltrace と sotrace を追加 2003-12-03 ツールのところに DDD を追加。thanks: 和田さん 2003-05-27 VCG, SXT などについて追加。thanks: 梅沢さん 2003-05-27 これもすっかり忘れていた strace, ktrace, truss, etags などについて追加 2002-08-30 すっかり忘れていた ctags を追加 2002-07-07 匿名希望さんからメールでいただいた情報を追加 (動的コールグラフ) 2002-06-13 日記経由でいただいた意見をもとに文章を追加。thanks: 柳川さん、まつもとさ

    Hoshi-KN
    Hoshi-KN 2009/09/30