タグ

Cに関するtanakaBoxのブックマーク (143)

  • 連載:C言語の最新事情を知る

    C99の仕様 長い歴史を持ちながら、依然として人気の高いC言語。その最新仕様の情報にキャッチアップするための連載スタート。今回は1999年に策定された「C99」を取り上げる。

    連載:C言語の最新事情を知る
    tanakaBox
    tanakaBox 2014/01/30
    C11とか。
  • 2014-01-04

    C 言語のプログラムの汚さで競い合うプログラミングコンテスト、The 22nd International Obfuscated C Code Contest の今年の結果が公開されました。 http://www.ioccc.org/years.html#2013 相変わらずの変態ぞろいですのでぜひご覧ください。既報の通り、ぼくは以下の 4 つの賞を貰いました。 Most lazy SKIer Most recyclable Most tweetable 1-liner Most solid それぞれ順次紹介していきたいと思います。 ref: http://ioccc.org/2013/endoh1.c #ifndef SKI #define A(x)B(x##0)B(x##1)B(x##2)B(x##3)B(x##4)B(x##5) #define B(x)C(x##0)C(x##1)C

    2014-01-04
    tanakaBox
    tanakaBox 2014/01/11
    クッソワラた
  • 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標準化委員会は、まともな名前を考えつかなかったらしい。まあ、大方のきれいな名前は、既存のソースコードと衝突してしまうから、アンダースコアに大文字で始まる予約語を使うしかないのだろう

    tanakaBox
    tanakaBox 2013/11/16
  • 今、Cで開発するためのスタンダードを知るための本 - L'eclat des jours(2013-09-30)

    _ 今、Cで開発するためのスタンダードを知るための 例によってアスキーの鈴木さんから、をもらった。花井さんのモダンC言語プログラミングだ。なお、似たような題の洋書があって、しかも花井さんは翻訳もするので、そのの翻訳書と勘違いされる可能性もありそうだが、完全にオリジナルだ。 Cは、Unixと共に(というか少し遅れて)生まれたということは、すでに40年以上の歴史があり、それだけの年月がたてば、COBOLなどと同じく老害言語と言われてもこれっぽっちもおかしくはない。 ところが、COBOLと異なり開発者市場がどんどん先細り(あるいは固定化)されるということはなく、むしろ増えている。それどころか最近の調査では最も利用されている(TIOBE 2013)。 一方、C++が先鞭をつけたビジネスプログラミングへのオブジェクト指向プログラミングの適用は、Java、Objective-C、C#と種類を増や

  • The 67th Yokohama kernel reading party

    Explaining glibc malloc internals. slide: http://www.slideshare.net/kosaki55tea/glibc-malloc

    The 67th Yokohama kernel reading party
    tanakaBox
    tanakaBox 2013/07/19
    mallocのお話。結構長い。
  • C言語

    C言語をやってみよう,ふと思い立った.かなり久しぶりだ.大学当時Cは講義であった.学生時代怠けまくった結果(?)私はCよりも,趣味でやっていたJavaの方が書いたコードの行数は多い.だが,やはり「たしなみ」としてC言語はやっておかねばなるまい. 基(?)ライブラリ編 プロセス制御 シグナル パイプ IPC Pthread Socket 端末制御 curses CUnit OpenSSLを使用したCプログラミング その他 基(?)ライブラリ編とりあえず,ライブラリにある関数をいろいろ試してみる.もちろん(?)Debian環境で. ファイル操作 2003-07-20T15:13+09:00 matsu GNU/Linuxシステムでのファイル操作について.ここでは特にシステムコールを用いてファイル操作する方法について. 標準入出力ライブラリでのファイル操作 2003-07-20T15:13+

    tanakaBox
    tanakaBox 2013/07/18
    curses等、ライブラリ関連充実。
  • Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い

    おなじみC/C++から使えるJSONライブラリを紹介するコーナー。まずは過去のまとめ。 最速と言われる JSON パーサ「rapidjson」が当に爆速なのか試してみた。 C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。 僕がboost::asioとboost::property_treeを使いHTTPプロキシ環境下で非同期にGoogle Search APIから検索するまでにやった、たった一つの事。 C言語から使えるJSONパーサ、JSMNを試してみた。 何も見ずにC++でjsonパーサが書けるか試してみた。 ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い! 最近は結構 matsuu さんのブクマから見つけて記事を書いてたけど今日はそうじゃない所からご紹介。 Jansson — C library for working w

    Big Sky :: C言語から使えるJSONパーサ、jansson がとても直感的で良い
    tanakaBox
    tanakaBox 2013/07/11
    うんこ・・・だな。
  • ときどきの雑記帖' 2013年7月(上旬)

    ■_ 8801! MkII はどのくらい後だっけか。 シンクレアのマシンは今はヒカリエになってるあの土地にあった建物の5階(だよな)にあった 某書店で見たような記憶がかすかに… 泳ぐやる夫シアター やる夫と学ぶホビーパソコンの歴史 第七話 ライジング・ソン ■_ 基礎講座C 学生のためのC 学生のための基礎C 学生のための詳解C ウィンストンのC 基礎から学べるC言語標準コースウェア 基礎から学ぶCプログラミング オープンソースで学ぶC言語 マスターC 例題で学ぶC言語 例題で身につけるC言語入門 はじめてのCプログラミング C言語プログラミング演習 Cプログラミング講座 入門ソフトウェア C言語 Cのドリル C言語によるプログラミング 基礎編 応用編 スーパーリファレンス編 基礎C言語プログラミング はじめて学ぶC言語入門 入門ANSI C C言語学習のポイント 新 C言語のススメ 最新

    tanakaBox
    tanakaBox 2013/07/08
    Cの入門書一覧。遊べそう。
  • casehack.c - Pastebin.com

    Not a member of Pastebin yet? Sign Up, it unlocks many cool features!

    casehack.c - Pastebin.com
    tanakaBox
    tanakaBox 2013/06/07
    コンパイル通るのか。gotoならわかりやすい。
  • Learn C the Hard Way

    Learn to think like the computer hates you, because it does. Learn C The Hard Way (LCTHW) is a practical book teaching real world useful C using the same proven Learn The Hard Way method. LCTHW teaches real robust C coding and defensive programming tactics on real hardware rather than abstract machines and pedantic theory. The book emphasizes breaking your code on purpose, and in the process teach

    tanakaBox
    tanakaBox 2013/06/01
  • デニス・リッチーによって書かれた最初のCコンパイラーがGitHubで公開

    mortdeus/legacy-cc · GitHub デニス・リッチー(1941-2011)によって書かれた発展途中の初期のCコンパイラーのソースコードがGitHubで公開されている。ソースコード自体は、まだデニス・リッチー存命の頃から公開されていたが、この機会に紹介してみる。 ライセンスは許諾的で、このライセンス文を同梱すること、並びに、ソースコードから生成されたバイナリはラインセンス文を出力することとなっている。 追記:ライセンスに関してふと思った。このライセンスは名義が企業で、著作権を盾に同意を求めている。日では、映画以外の団体の著作権の保護期間は公開後50年である。UNIXと付属するソフトウェアのソースコードは当時から公開されていた。ということは、1973年に制作されたこのCコンパイラーのソースコードは、日国内では、2024年に著作権が切れるのだろうか。 詳しい経緯は、以下の

    tanakaBox
    tanakaBox 2013/05/25
    シンプルだなぁ。
  • Cello • High Level C

    #include "Cello.h" int main(int argc, char** argv) { /* Stack objects are created using "$" */ var i0 = $(Int, 5); var i1 = $(Int, 3); var i2 = $(Int, 4); /* Heap objects are created using "new" */ var items = new(Array, Int, i0, i1, i2); /* Collections can be looped over */ foreach (item in items) { print("Object %$ is of type %$\n", item, type_of(item)); } /* Heap objects destructed via Garbage

    tanakaBox
    tanakaBox 2013/05/18
    なんぞコレ。凄すぎてワラた。
  • 革命の日々! __attribute__(alloc_size) を使わないと_FORTIFY_SOURCE を活かせないよ。という話

    _FORTIFY_SOURCEというバッファーオーバーフロー攻撃を防ぐのにとても有用なマクロがある。 知らなかった人は以下のmanでもまず見てください http://linuxjm.sourceforge.jp/html/LDP_man-pages/man7/feature_test_macros.7.html _FORTIFY_SOURCE (glibc 2.3.4 以降) このマクロを定義すると、文字列やメモリの操作を行う様々な関数を 使用する際にバッファオーバーフローを検出するための軽めのチェックが 実行されるようになる。すべてのバッファオーバーフローが検出される わけではなく、あくまでよくある例についてだけである。 現在の実装では、以下の関数にチェックが追加されている: memcpy(3), mempcpy(3), memmove(3), memset(3), stpcpy(3),

    tanakaBox
    tanakaBox 2013/05/12
  • Big Sky :: gcc は副作用のある関数呼び出しを含む式評価順序を最適化する。

    2013/04/30 タイトル修正 昨日、とある場所でこんな話で盛り上がった。 逆ポーランド計算機を作ろうと思ったんだけど、どうも結果が期待通りにならない。 ソースコードを見せて貰うと以下の様なコードだった。 #include<stdio.h> #include<stdlib.h> #define MAX_SIZE 100 int stack[MAX_SIZE]; int stack_pointer = 0; void push(int data){ stack[stack_pointer++] = data; } int pop(){ return stack[--stack_pointer]; } int pop1(int n){ printf("pop %d\n", n); return stack[--stack_pointer]; } int main(void){ char s

    Big Sky :: gcc は副作用のある関数呼び出しを含む式評価順序を最適化する。
    tanakaBox
    tanakaBox 2013/05/10
    あるある。
  • http://www.d3.dion.ne.jp/~fut_nis/Other/index.html

    tanakaBox
    tanakaBox 2013/05/01
    glib入門。
  • feof関数でwhileループを回す奴はド素人 - hnwの日記

    (2013-04-07 01:30追記)補足のコードに恥ずかしい間違いがあったのを修正しました。@nonakapさん、id:s-tomoさん、ご指摘ありがとうございます。 (2013-04-07 10:00追記)「補足その2」を書き足しました。 (2017-04-23追記)論旨がわかりにくい部分があったので、整理しました stackoverflowの記事「“while( !feof( file ) )” is always wrong」をざっくり翻訳してみます。これはWilliam Pursellさんによる自作自演スレ(回答者も人)で、Cでwhile( !feof( file ) )というループを作るのが悪い理由を説明するものです。 ちなみにPHPについてもほぼ同じことが言えますので、PHPプログラマの方にも一読をお勧めします(PHPの主要なファイル操作関数はCとほぼ同じインターフェース

    feof関数でwhileループを回す奴はド素人 - hnwの日記
    tanakaBox
    tanakaBox 2013/05/01
    使ったことないわ。
  • 革命の日々! mallocの発音について

    すごい昔に glibc mallocの内部実装についての解説をGoogle Videoにアップロードしたことがあるんだけど(*)、そのときにmallocを「まろっく」と発音していたらすごい勢いでツッコミをもらった。エムアロック派とメイロック派の両方に怒られた。 ところで、先週 glibcのメンテナと一緒に事をする機会があり、glibcの今後の開発について相談をしたりしてたのだけど、がんばって「めいろっく」「めいろっく」言ってたら、「まろっくね」とやんわり否定されて、恥ずかしさマックスだった。はー、まともに英語が喋れるようになりたいわ。 (*)正確には「されたことがある」だけど。わたしはしてない。あの動画はアップロード者によって削除されてしまったので、もうインターネット上では見れない。知り合いに見られないのはいいことだが、自分がオリジナルをもってないので、たまにコピーをくれと言われると困っ

    tanakaBox
    tanakaBox 2013/04/25
    まろっく派ですわ。xkcd • View topic - Pronouncing malloc http://forums.xkcd.com/viewtopic.php?f=40&t=64867
  • KMC Staff Blog:自分でデバッグ用のmallocライブラリを作ったときにはまった落とし穴

    2013年03月12日 自分でデバッグ用のmallocライブラリを作ったときにはまった落とし穴 先日3月8日に開催されたテクニカルジャンボリーでmallocの話をしてきました。Embedded Linux Conference 2013では英語で発表したのですが、ここでは気楽に日語で話しました。 Tips of Malloc & Free from Tetsuyuki Kobayashi 「Linux」カテゴリの最新記事 タグ : celfjp linux embedded malloc

    tanakaBox
    tanakaBox 2013/03/17
    まだ見てない。
  • Introduction — multiprecision.org

    GNU MPC is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result. It extends the principles of the IEEE-754 standard for fixed precision real floating point numbers to complex numbers, providing well-defined semantics for every operation. At the same time, speed of operation at high precision is a major design goal. The library is buil

    tanakaBox
    tanakaBox 2013/02/20
    複素数ライブラリ。GCCのコンパイルに必要。
  • Introduction — multiprecision.org[B!]新着記事・評価 - はてなブックマーク

    キーボードショートカット一覧 j次のブックマーク k前のブックマーク lあとで読む eコメント一覧を開く oページを開く ✕

    tanakaBox
    tanakaBox 2013/02/20
    Gnu Mpc is a C library for the arithmetic of complex numbers with arbitrarily high precision and correct rounding of the result.