タグ

関連タグで絞り込む (199)

タグの絞り込みを解除

cに関するtyruのブックマーク (427)

  • reallocの怪 - Qiita


    bzeromemset99%使0memset reject使(=)memset
    reallocの怪 - Qiita
    tyru
    tyru 2017/07/04
  • Big Sky :: Ruby の Array#<< は Array#push よりも速いか


     Ruby  Array#<<  Array#push 調 require 'benchmark' Benchmark.bm 10 do |r| r.report "push" do 8000000.times do; [].push(1); end end r.report "<<" do 8000000.times do; [] <<1; end end end  user     system      total        real push         1.570000   0.000000   1.570000 (  1.579687) <<           1.280000   0.000000   1.280000 (  1.288951)  Array#<< 
    Big Sky :: Ruby の Array#<< は Array#push よりも速いか
    tyru
    tyru 2017/02/12
  • プリプロセッサで足し算しましょう! - デ-mk6


     ADD(3, 2)5 #define ADD(m, n) ((m) + (n))   
    プリプロセッサで足し算しましょう! - デ-mk6
    tyru
    tyru 2016/12/19
    記憶には残ってたけどブクマしてなかった…
  • <--(中略)-- 演算子 - yohhoyの日記

    プログラミング言語C++のヘンテコな演算子。💘(U+1F498) #include <iostream> int main() { int n = 100; while ( 0 <-------------------- n) { // !? std::cout << n << ' '; } } 実行結果: 90 80 70 60 50 40 30 20 10 タネ明かし 前掲C++ソースコードの振る舞いを括弧を用いて明確化する。int型の変数nに対し前置デクリメント演算子を10回適用し、その結果を値0と比較している。C++では組込み前置デクリメント演算子の戻り値は左辺値(lvalue)となるため、該当ソースコードはwell-definedとなる。 int n = 100; while ( 0 < --(--(--(--(--(--(--(--(--(--n))))))))) ) { s

    <--(中略)-- 演算子 - yohhoyの日記
    tyru
    tyru 2016/12/07
    C++ では well-defined。C では ill-formed
  • C言語、知ってるつもり? | POSTD


    CC44 C  使C 5 1
    C言語、知ってるつもり? | POSTD
    tyru
    tyru 2016/12/04
  • sprintf を最大10倍以上高速化するプリプロセッサ「qrintf」を作った


    H2OHTTPsprintfsprintf便HTTP使CPU sprintf qrintf qrintfCsprintfsprintf IPv4 sprintf( buf, "%d.%d.%d.%d", (addr >>24) & 0xf
    tyru
    tyru 2014/10/03
  • Go言語+SWIGでC言語のライブラリを呼び出す - あんこひのにっき


    GoSWIGCCC++使SWIG使便C Ubuntu 11.10 GCC 4.6 Go1 SWIG 2.0.4   SWIG and Gohttp://www.swig.org/Doc2.0/Go.html  GoC Hoge.h int Nibai(int num); Hoge.c #include "Hoge.h" int Nibai(int num) { return num * 2; } SWIG(.i) Hoge.i %module H
    Go言語+SWIGでC言語のライブラリを呼び出す - あんこひのにっき
  • Big Sky :: clib の使い勝手にマジ感動した


    C HTTP  json   C HTTP curl JSON parson  ...Windows...  curl  parson 調調  ruby  perlnodejsgolang  C include 
    Big Sky :: clib の使い勝手にマジ感動した
    tyru
    tyru 2014/06/28
    C言語版bundler。依存ライブラリのセットアップが簡単便利に。
  • C言語でのポータブルなstring IOについて - wasabizの日記


    2014-01-17 Cstring IO Q. Cstring IO A.  string IOmemoryIOFILECC FILEstdio 1.  glibcfmemopenopen_memstr
    tyru
    tyru 2014/01/18
  • ruby/ruby#495日本語解題


    ? [1] [2]  :  Ruby()CPU NetBurst78Ruby?
    ruby/ruby#495日本語解題
    tyru
    tyru 2014/01/10
  • Why does the C preprocessor interpret the word "linux" as the constant "1"?

    Why does the C preprocessor in GCC interpret the word linux (small letters) as the constant 1? test.c: #include <stdio.h> int main(void) { int linux = 5; return 0; } Result of $ gcc -E test.c (stop after the preprocessing stage): .... int main(void) { int 1 = 5; return 0; } Which of course yields an error. (BTW: There is no #define linux in the stdio.h file.)

    Why does the C preprocessor interpret the word "linux" as the constant "1"?
    tyru
    tyru 2013/10/12
  • http://blog.monoweb.info/blog/2012/07/14/c99-array/

    tyru
    tyru 2013/09/02
    つらい
  • 革命の日々! __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),
    tyru
    tyru 2013/05/05
    Vimでも_FORTIFY_SOURCE使ってた記憶あるけどちゃんと活かせてるのかな?と思って検索したら__attribute__((unused))しか使ってなかった。でもかなり多くのプラットフォームに移植されてるから使いにくいんだろうか。
  • feof関数でwhileループを回す奴はド素人 - hnwの日記


    2013-04-07 01:30@nonakapid:s-tomo 2013-04-07 10:002 2017-04-23 stackoverflowwhile( !feof( file ) ) is always wrongWilliam PursellCwhile( !feof( file ) ) PHPPHPPHPC
    feof関数でwhileループを回す奴はド素人 - hnwの日記
    tyru
    tyru 2013/04/07
    あるあるネタ
  • ファイルを画像ファイル(BMP)にしたり戻したり - Let's write β

    普通のファイルを画像にしたり、その画像からファイルに戻したりしたら面白いだろうなぁ と思っていたので、今BMPにするものを書いてみました。 #include <stdio.h> #include <stdlib.h> #include <math.h> #include "bmp.h" main(int argc, char** argv) { FILE *fp; fpos_t sz; int v, cnt; if(argc < 2) { exit(1); } if((fp = fopen(argv[1],"r")) == NULL) { exit(1); } cnt = 0; //Get File size fseek( fp, 0, SEEK_END ); fgetpos( fp, &sz ); printf("file size: %d\n",sz); fseek( fp, 0, S

  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    tyru
    tyru 2012/12/12
    なるほど。すげー
  • gethostbynameの落とし穴:Geekなぺーじ

    変な結果が出るサンプル 以下の例では、二つのテストを行っています。 テストの中ではwww.yahoo.co.jpとwww.google.co.jpの両方に対してgethostbynameを連続的に行っています。 当はwww.yahoo.co.jpとwww.google.co.jpの両方のIPアドレスが表示されて欲しいのですが、実際には片方しか表示されません。 #include <stdio.h> #include <winsock2.h> int main() { WSADATA wsaData; struct hostent *hostent1, *hostent2; struct in_addr inaddr1, inaddr2; WSAStartup(MAKEWORD(2,0), &wsaData); // // テスト1 hostent1 = gethostbyname("www

    tyru
    tyru 2012/11/18
    gethostbyname()の返り値は全て同じ領域を指してしまい常に最後に呼んだ結果になってしまう。getaddrinfo()は毎回動的に確保されるのでそのような心配はない。
  • Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。


     JSMN  matsuu  parson Lightweight json parser and reader written in C. http://kgabis.github.com/parson/   (2) API  json  (COO: "objectA.objectB.value") C89    JSMN DOM  twitter #include <assert.h> #include <string.h> #inclu
    Big Sky :: C言語から使えるJSONパーサ、parson が思った以上に良い仕事をしている。
    tyru
    tyru 2012/11/04
    「C言語のJSONパーサの中では、私が知る限り一番扱いやすい」 / MEMFILEとかcurlのあたりはスニペットか既存コードから持ってきたんだろうなぁ
  • orangeduck/CPlus · GitHub

    /* ** Example C+ Program */ #include "C+.h" int main(int argc, char** argv) { /* Stack objects are created using "$" */ var int_item = $(Int, 5); var float_item = $(Real, 2.4); var string_item = $(String, "Hello"); /* Heap objects are created using "new" */ var items = new(List, 3, int_item, float_item, string_item); /* Collections can be looped over */ foreach(items, item) { /* Types are also obj

    tyru
    tyru 2012/11/01
    まるで別言語
  • Mitzyuki's Blog :: C 中級者が意外と陥りやすいワナ


    C      strncpy(3)  ``\0''  strcpy(3)  strncpy(3)   strncpy(dst, src, len);   src  len  dst  ``\0''   dst   ``\0''    src
    tyru
    tyru 2012/10/05