タグ

cに関するhirose31のブックマーク (20)

  • Introducing Clib — Code adventures — Medium

    Despite the ubiquitous nature of C it’s sometimes difficult to find just what you need, and you’re especially lucky if it’s not part of some gigantic library of unrelated code. For this reason I’ve decided to create Clib, a GitHub organization aimed at providing small, focused, discoverable “micro libraries”. Using ClibClib is a suite of small C libraries that you can manually copy/paste into your

    hirose31
    hirose31 2014/06/26
  • ポインタ宣言の*記号、左寄せ派? 右寄せ派?

    C/C++でポインタ変数を宣言するときの*記号をint* a;のように左寄せで書くか、int *a;のように右寄せで書くか。 右寄せで書く場合、「Cでは宣言と使用の文法を一致させる」という規則から考えれば素直に解釈できるという話。

    ポインタ宣言の*記号、左寄せ派? 右寄せ派?
    hirose31
    hirose31 2014/03/27
  • 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

    hirose31
    hirose31 2012/01/18
    pointer
  • C9X -- The New C Standard

    What is C9X? C9X is the name for an effort undertaken in the late nineteen-nineties to produce a new improved standard for the programming language C. An ISO committee has been working to define this new improved language. In december 1997, they released their first public draft version of the new standard for public review. Later, they also released the C9X FCD. (I suppose that "FCD" stands for "

    hirose31
    hirose31 2009/04/24
  • iPhone 開発に使える C99 仕様と gcc 拡張 - 2009-04-23 - Windchase

    iPhone アプリの開発には、コンパイラとして gcc 以外を使うことは基的にありません。 したがって、gcc に実装されている C99 仕様や gcc 拡張仕様を気がねすることなく利用することができます。 ここでは、便利な C99 仕様や gcc 拡張を紹介します。 配列の動的確保 (C99) 配列を定義するときに、動的にサイズを指定してメモリを確保することができます。 従来は、 int n = 100; char* buf = alloca(n); のように alloca を使っていたところを、 int n = 100; char buf[n]; と、言語仕様の範囲内で、より直観的に書けるようになりました。 case の範囲指定 (gcc 拡張) 従来、switch 〜 case で switch (n) { case 0: case 1: case 2: case 3: proc

    iPhone 開発に使える C99 仕様と gcc 拡張 - 2009-04-23 - Windchase
    hirose31
    hirose31 2009/04/24
  • ストレージエンジンを書くにあたって知っているといいかもな知識 - kazuhoのメモ置き場

    ってどのあたりなんだろ。マインドマップ的に。 たとえば memcached のストレージ書くなら、 I/O API p?(read|write)v, fsync async API? Memory Mapping API mmap, msync Multithreading pthread API various locks: mutex, rwlock, etc. あたりかなぁ。耐障害性が必要になってくるなら、 Block Device HDD, SSD block size, random vs. sequential access, etc. Journalling Replication あたりも必要? より格的なストレージを書くなら MVCC Transaction Data Arrangement logging, indexing, cluster index, row-b

    ストレージエンジンを書くにあたって知っているといいかもな知識 - kazuhoのメモ置き場
    hirose31
    hirose31 2008/09/23
    このへんまるっとまとまったいいテキストがあるといいなぁー で、id:kazuhooku先生にご教授されたい><
  • Language C FAQ

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

    hirose31
    hirose31 2008/05/02
  • 別のプロセスにファイルディスクリプタを転送する - Blog by Sadayuki Furuhashi

    UNIXドメインソケット経由でファイルディスクリプタを別のプロセスに渡すことができるらしいと言うことで、試してみました。Manpage of UNIX Manpage of SEND 標準出力を別のプロセスに渡してみます。渡された側のプロセスは、自分の標準入力からの入力を、渡された標準出力に出力しています。 ライブラリ(fdtransport.h): #ifndef FDTRANSPORT_H__ #define FDTRANSPORT_H__ #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/socket.h> #include <sys/un.h> #include <fcntl.h> #include <string.h> /* UNIXドメインソケットを待ち受ける */ /*

    別のプロセスにファイルディスクリプタを転送する - Blog by Sadayuki Furuhashi
    hirose31
    hirose31 2008/02/09
    cmsg->cmsg_type = SCM_RIGHTS;
  • プログラミング言語 C の新機能

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

    hirose31
    hirose31 2007/10/22
    enumのケツカンマ
  • dW : Linux : C99を使ったオープンソース開発

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    dW : Linux : C99を使ったオープンソース開発
    hirose31
    hirose31 2007/09/19
  • 子プロセスに LD_PRELOAD を継承させない - bkブログ

    子プロセスに LD_PRELOAD を継承させない Linux で LD_PRELOAD 環境変数を使うと共有オブジェクト (共有ライブラリ) のプリロードを行うことができます。通常、LD_PRELOAD が設定されている間は、あるプロセスから呼んだ子プロセスも同様にプリロードを行いますが、場合によっては子プロセスにはプリロードさせたくないときもあります。 たとえば、make に対して foo.so をプリロードさせるつもりで、 LD_PRELOAD=./foo.so make と実行すると、make が呼び出すあらゆるコマンドも foo.so をプリロードします。 その結果、gcc や gcc の呼び出すプログラム cc1, as, collect2, ld まで foo.so をプリロードします。 foo.so が make の挙動を変えることのみを目的としていた場合、 gcc まで影

    hirose31
    hirose31 2007/08/25
  • プロファイラのしくみ steps to phantasien t(2007-08-23)

    UNIX 偏向文書 artu の中で "Measure Before Optimizing" と説く Raymond は, 同時にプロファイラの計測機構 (instrumentation) がもたらすノイズについて注意を促している. 私のプロファイラ信仰に不安が翳を落とす. gprof ノイズはさておき, そもそもプロファイラはどんな仕組みで速度を測っているんだろう. gprof のマニュアル によると, GNU 一族のプロファイラは次のように実装されている: まず "-pg" オプションつきの gcc でソースをコンパイルする. この指示を受けたコンパイラは各関数の冒頭に "mcount" という名前の関数呼出しを加える. リンクする C のランタイムも専用バージョン (gcrt0.o) に差し替わる. このランタイムは裏で profil() 関数を使いタイマを仕掛ける. そのタイマは発

  • Ross Bencina - Life, Music, Software

    In November 2013 I posted a draft of “Time Varying BIBO Stability Analysis of Trapezoidal integrated optimised SVF v2” to the music-dsp mailing list.[1] The draft applied Jean Laroche’s state-space method [2] to prove the time varying stability of the SVF filter that Andy Simper had recently derived using trapazoidal integration.[3] I didn’t quite finish the stability proof. You can read the discu

    hirose31
    hirose31 2007/08/21
    queue stack list ringbuffer
  • 革命の日々! シーケンスロック その5 volatileがダメな理由

    どもども。またまた間隔があいてしまいましたがシーケンスロックな話しの続きです。 前回の記事で坩堝さんから面白い指摘をうけたので今回は予定を変更してvolatileの話をしたいと思います。 retをvolatileにするだけではうまくいかないんですよね? どういう風になるんだろ. なるほど、たしかに世のC言語の参考書を見るとvolatileはある種の最適化を妨げる効果を持つと されています。 これだけ見ると、volatileとつけるだけすべての最適化が無効になってうまく動きそうですね。 しかし、その理屈は微妙におかしいのである 多くの人が「ある種の」という言葉を拡大解釈しているがvolatileは来スレッド同期に使えるようなシロモノではないのである。 つづきは、続きを読むからご覧ください。 あと、お願い。 今回の話は前提知識がいろいろとあるので、末尾のご参考にあげたURLを読んでから 読ん

    hirose31
    hirose31 2007/08/10
    volatile
  • http://www.knatech.info/dev-cdt-install.html

    hirose31
    hirose31 2007/08/03
    関数プロトタイプの構造体とかがその場でぺろっと表示されるので便利ー
  • [法大奥山研究室]C言語

    法政大学奥山研究室 <webmaster_okuyama_at_hosei_313@yahoo.co.jp> 法政大学 | 経済学部 | 教員/ゼミ一覧 Last modified: 2014/10/11 11:42:01 Accessed: 2024/08/22 08:44:47 /unix/C/index.html, 0.4310 Copyright (C) 2001-2024 Toshiyuki Okuyama. All Rights Reserved.

    hirose31
    hirose31 2007/07/24
  • code

    CODE < ^ > << new | old >> / 2023-03-27

    hirose31
    hirose31 2007/06/11
    sugoi--
  • ひたすら読みにくいCコード:Geekなぺーじ

    「The International Obfuscated C Code Contest」という面白いコンテストがあります。 1984年から行われているこのコンテストは、どれだけ読みにくいC言語プログラムを書けるか競うものです。 wikipediaでは、以下のように説明されています。 IOCCCとは「The International Obfuscated C Code Contest(国際邪悪なCコードコンテスト)」の略称。汚く読みづらいC言語コードをあえて書き、その汚さを競うというC言語ハッカーの奇祭である。むろんただ汚ければよいというわけではなく、目にした瞬間のインパクト、実行結果の美しさなど、さまざまな要因でアーティスティックなものが選ばれる。多くのコードはそもそも全くC言語に見えない。コード全体がアスキーアートになっているものなどが典型的である。 第一回大会は1984年に行われ、

    hirose31
    hirose31 2007/01/13
  • C(++)言語: valgrindの使い方

    ubuntu% uname -a Linux ubuntu 2.6.12-10-386 #1 Sat Mar 11 16:13:17 UTC 2006 i686 GNU/Linux ubuntu% valgrind --version valgrind-3.0.1 (0) 目次 Valgrindに含まれるツール Memcheck: メモリエラーを検出する(default) Cachegrind: キャッシュミスを検出する Massif: ヒーププロファイラを使う まとめ valgrindの使い方とエラーメッセージを整理してみた。「valgrind --leak-check=full command」というコマンドラインをよく用いる。これによりメモリ周りのバグを検出出来る。 --tool=cachegrindではプログラム実行時のキャッシュミス率を測定する事が出来る。cg_annotateを

    hirose31
    hirose31 2006/11/17
  • Valgrind Home

    Information About News Tool Suite Supported Platforms The Developers Source Code Current Releases Release Archive Variants / Patches Code Repository Valkyrie / GUIs Documentation Table of Contents Quick Start FAQ User Manual Download Manual Research Papers Books Contact Mailing Lists and IRC Bug Reports Feature Requests Contact Summary Commercial Support How to Help Contributing Project Suggestion

    hirose31
    hirose31 2006/11/17
  • 1