タグ

cに関するmasami256のブックマーク (22)

  • lfhck.com - What's the difference between __PRETTY_FUNCTION__, __FUNCTION__, __func__?

    masami256
    masami256 2013/12/27
    φ(.. )メモシテオコウ
  • cdecl: C gibberish ↔ English

    Source Code Try these examples: int (*(*foo)(void ))[3] declare bar as volatile pointer to array 64 of const int cast foo into block(int, long long) returning double cdecl C gibberish ↔ English permalink by ridiculous_fish (and many others)

    masami256
    masami256 2013/09/02
    cの変数宣言を英語での説明にしてくれるサービス
  • C preprocessor internals

    C preprocessor: Just a simple replacer? Lately, out of curiosity, I spent some time to better understand how the C preprocessor works. I admit it, I thought it was a very dumb copy-paste based replace mechanism, only capable of doing the simpler keyword matching and replacement. Boy, was I wrong. Turns out the preprocessor is actually an organically grown pseudo language (as opposed to a properly

    C preprocessor internals
    masami256
    masami256 2013/09/02
  • What Every C Programmer Should Know About Undefined Behavior #1/3

    What Every C Programmer Should Know About Undefined Behavior #1/3 People occasionally ask why LLVM-compiled code sometimes generates SIGTRAP signals when the optimizer is turned on. After digging in, they find that Clang generated a "ud2" instruction (assuming X86 code) - the same as is generated by __builtin_trap(). There are several issues at work here, all centering around undefined behavior in

    masami256
    masami256 2011/05/12
    今度読む
  • printfで色など

    Back printfで色をつけたり、太文字にしたりすることができます。 基は'\x1b[コードm'です。 '\x1b[コード;コード;コードm'などとして、 複数のコードを指定することもできます。 例えば、printf("\x1b[1;31mTEST"); とすると、 赤太文字で'TEST'と表示されます。 しかし、その後に表示される文字も赤太文字になってしまうので、 printf("\x1b[0m"); とやって、初期状態に戻すとよいでしょう。 コード表 0 : 初期状態 1 : 太文字 4 : 下線 5 : 点滅 (端末によっては太文字) 7 : 色を反転 (30〜37は文字の色を指定) 30 : 黒 31 : 赤 32 : 緑 33 : 黄 34 : 青 35 : 紫 36 : 水 37 : 白 (40〜47は背景の色を指定) 40 : 黒 41 : 赤 42 : 緑 43 :

    masami256
    masami256 2009/11/22
    printf()で色付け
  • C history

    Welcome to Nettica!Join the Cloud! We are a cloud based VPN service built on WireGuard™ technology providing fast, secure connections to local and cloud resources. Make your own cloud! Mix and match between local and multi-cloud environments managed with the Nettica Agent. Command and control your network from anywhere! OAuth2 and role-based access control provide a secure environment to manage yo

    C history
    masami256
    masami256 2009/11/21
  • Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ

    今年の文化祭で書いた記事です。 - C言語といえば、いやなイメージ、過去の遺産といった感じがあるかもしれません。 C言語のネガティブな側面というと、やはりポインタやメモリ管理などが難しい、ということが思いつくかもしれません。 しかし、C言語のポインタは表記に騙されやすいだけで、仕組み自体は全く難しくありません。 文法も、どこぞのPerlC++と比べたら屁でもない単純さです。 実のところ、仕様が煩雑で難しいのは、Cプリプロセッサなのであります。 普段からあまり複雑な使いかたをしないから気づかないかもしれませんが、Cプリプロセッサの置換処理は、欺瞞と裏切りに満ちた世界なのです。 これが進化するとテンプレートなどといったもっと面白いものになるのですが、今回はCプリプロセッサで計算をしちゃったりするところまで試しにやってみましょう。 (なお、GCCにより実験的に調べた記事なので、他のCコンパイラ

    Cプリプロセッサメタプログラミングで、文字列系泥沼関数型プログラミング - 簡潔なQ
    masami256
    masami256 2009/11/08
  • 絵で見てわかるC言語入門 - 第1章 - J

    そういえば勉強会の時に、「関数ポインタを返す関数はどうやって書くか?」みたいになったが、僕はそういう時は$ man signal して調べる派である。 http://www.linux.or.jp/JM/html/LDP_man-pages/man2/signal.2.html さて、C言語を使い慣れた人には常識ですが、C言語初心者にとって少し難しいのが、変数の宣言です。 例えば、初心者にとって、関数ポインタの配列へのポインタを返す関数の宣言を書くのはあまり簡単ではありません。 C言語の初心者には、以下のようなコードを書くのは少し難しく、また、C言語にあまり慣れていない人は、typedefなどを使ってしまいがちです。 typedef int (*func_t)(int); typedef func_t func_arr_t[10]; extern func_arr_t *x[40]; in

    絵で見てわかるC言語入門 - 第1章 - J
    masami256
    masami256 2009/10/28
  • CUnit Home

    CUnit is a lightweight system for writing, administering, and running unit tests in C.  It provides C programmers a basic testing functionality with a flexible variety of user interfaces. CUnit is built as a static library which is linked with the user's testing code.  It uses a simple framework for building test structures, and provides a rich set of assertions for testing common data types.   In

  • 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

    masami256
    masami256 2008/11/28
  • 初級C言語Q&A

    [↑質問一覧] [ホームページ] 号別リスト コンパイラの選び方 (C MAGAZINE 1995-6) 文字列 (C MAGAZINE 1995-7) ポインタ (C MAGAZINE 1995-8) malloc, free (C MAGAZINE 1995-9) 値 (C MAGAZINE 1995-10) スタイル (C MAGAZINE 1995-11) 不定と未定義 (C MAGAZINE 1995-12) 前処理 (C MAGAZINE 1996-1) 処理系依存の問題 (C MAGAZINE 1996-2) 動かないプログラム (C MAGAZINE 1996-3) 構造体 (C MAGAZINE 1996-4) ビット操作、論理演算(C MAGAZINE 1996-5) 標準ライブラリ (C MAGAZINE 1996-6) 構造体(2) (C MAGAZINE 1996

    masami256
    masami256 2008/10/14
  • 【C言語】POSIXスレッドを用いたechoサーバ - (・∀・)イイ!!Memo

    構築環境:FreeBSD 4.10-RELEASE POSIXスレッドについて知りたければ、まずは【C言語】POSIXスレッドプログラミングを参照。 サーバの仕組みとスレッド † 通常、Webサーバなどは親プロセスがポートをListenし、接続があったら、子プロセスを生成し、その後の(クライアントへのデータ送信等の)処理は、子プロセスに 任せるというフローをとる。 そうすることで、親プロセスはクライアントへデータ送信が終わるのを待つ必要がなくなり、どんどん接続を受けることが可能になる。 接続数が多くなると、当然、子プロセスが多くなり、サーバへの過負荷となる。 そこで、子プロセスではなく、スレッドでクライアントの処理を行うと負荷低減につながる*1 ↑ echoサーバのPOSIXスレッド化 † 【C言語】Socket間通信(echoサーバ)にptheadを組み込み、複数クライアントに対して

    masami256
    masami256 2008/07/28
  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    masami256
    masami256 2008/07/26
  • 産総研 RCIS: Fail-Safe C: 安全なC言語コンパイラ

    Fail-Safe C とは Fail-Safe C は、完全な ANSI-C に対するメモリの安全性を保証する実装です。Fail-Safe C は、完全な ANSI-C 規格への準拠 (キャストや共用体を含む) を実現しながら、実行状態の破壊や乗っ取りに繋がる全ての危険な操作を検出し防止します。また、Fail-Safe C は、様々な「dirty trick」――必ずしも ANSI-C で厳密な意味では認められないが、広く一般のプログラマが利用している様々な記述手法――を、安全性を壊さない範囲でサポートしています。 Fail-Safe C では、コンパイル時や実行時の様々な最適化手法を組み合わせることで、実行時検査のオーバーヘッドの削減を行っています。このコンパイラを用いることでプログラマは、既存のプログラムを大幅に書き換えたり別の言語に移植したりすることなく、そのままプログラムを安全に

  • http://www.w00w00.org/files/articles/heaptut.txt

  • GCCで定義されているマクロの一覧を表示 - tuedaの日記

    なんでもいいので適当に $ g++ -dM -E main.cpp さらにgrep -i FreeBSD とやると #define __FreeBSD_cc_version 602001 #define __VERSION__ "3.4.6 [FreeBSD] 20060305" #define __FreeBSD__ 6 spu-gcc -x c -dM -E /dev/null というのもいいらしい。

  • 3.1 配列の要素数を返す. - C/C++ 関数・マクロ集 ((ほぼ?) 処理系・OS 非依存)

    「C/C++ 関数・マクロ集」というタイトルですが, そのうちのいくつかはC専用だったりします.(苦笑) 2007/06/24(日) 追記 高木さんより, Cの規格上移植性に問題がある点をご指摘いただいたので, 現在修正中です. (たくさんあります….orz) とはいってもその多くは, めったにお目にかかれないような珍しい処理系とか, 「そんなの実在するの?」という処理系に移植する場合の話なので, 実用上ほとんどの場合は問題ないと思います. (一部そうとはいえないものもありますが.) Cの規格に照らして完全に「処理系・OS 非依存」 にするのは困難な場合もあり, 完璧な移植性にこだわるあまりプログラムが書けなくなっては末転倒なので, タイトルに「ほぼ?」を入れました.orz 2007/06/21(木) 追記 このページを含め,私が C/C++ 関連記事を書くに当たりたびたび参考に&リンク

  • memologue

    google-perftoolsというx86,x86_64,ppcなUNIX向けのプロファイラの(cpu-profiler部分)を、armなLinuxに対応させてみました。何かの役に立つかもしれないので、patchおよびpatch作成作業のメモを載せます。arm-v5tアーキテクチャ(ARM9系)向けの移植です。 Linux/ARM向けのソフトウェアのパフォーマンスを解析したいなぁと思うことがあったのですが、OProfileはカーネル入れ替えがめんどくさい、gprofはプロファイル専用のバイナリを作成するのがめんどくさい、プロプラな奴は興味ないということで移植しました。移植の方がめんどくさいだろという話もありますが。perftools自体の説明はこちらが便利です。あーそういえばAndroidもARMでしたっけ? パッチ http://binary.nahi.to/google-perfto

    memologue
  • GnomeLove/PanelAppletTutorial - GNOME Live!

    Introduction This tutorial is based on AndrewBurton's panel applets tutorial. It sprang from the frustration with insufficient documentation AdamSchreiber had while writing Seahorse's Encryption Applet. You may also be interested in Davyd's notes on debugging GNOME applets. What is an Applet? In Gnome, an applet is a small application, designed to sit in the Gnome panel, providing quick and easy

  • Anjuta IDE マニュアル

    Anjuta IDE マニュアルCopyright © 2001-2002 by Naba Kumar, Andy PiperCopyright © 2002 by 相花 毅 aihana@gnome.gr.jp (邦訳)