タグ

cに関するnitoyonのブックマーク (30)

  • プログラムを高速化する話

    KMCの例会講座で用いたスライドを一部編集したものです。 ビット演算を組み合わせたトリッキーな方法で様々な操作を高速に行う方法を紹介します。

    プログラムを高速化する話
    nitoyon
    nitoyon 2015/03/16
    アルゴリズムよりもレイヤーが低い高速化・最適化の話。/ popcount の数式の意味をやっと理解できた。
  • Big Sky :: clib の使い勝手にマジ感動した

    C言語でアプリケーションを書くのは他の言語と比べて少し気合が必要ですよね。例えば HTTPからデータを取得する 取得したデータを json パースする 結果の一部を色付きで表示する こんな場合、C言語プログラマは 「HTTP か、じゃぁcurlかな」 「JSON か、parson かな」 「色表示か...エスケープシーケンスでもいいけどWindowsがなー...」 といった事を考え、そこから curl や parson といった資材の調達を始める事になります。途中で新しい機能を追加したくなり、それを外部ライブラリに頼る場合だとその都度資材を調達する必要があり、思考を停止しなければなりません。 この辺は rubyperl、nodejs、golang 等の様に、ちょっとした手間だけで済ませたい物です。 またC言語の場合、ヘッダファイルはシステムの include フォルダに提供元が期待す

    Big Sky :: clib の使い勝手にマジ感動した
    nitoyon
    nitoyon 2014/06/28
    C 言語で npm 的にパッケージ管理するやつ。
  • ポインタの裏話

    ポインタの裏話 岡﨑 直観 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||

    nitoyon
    nitoyon 2012/06/03
    マシン語の観点からポインターを説明。「機械語にはポインタしかない」「C 言語の変数はポインタを隠蔽するが、ポインタを使って直接アクセスする方法も残している」
  • C における一時オブジェクトの生存期間 | Yak!の日記 | スラド

    Twitter 上で C++ STL の vector に関して評価順序不定ではまっているコードの例が流れていてそこから C 言語における(規格上の)落とし穴に行き着いたのでメモ。 // from http://www.jpcert.or.jp/sc-rules/c-exp35-c.html #include <stdio.h> struct X { char a[6]; }; struct X addressee(void) { struct X result = { "world" }; return result; } int main(void) { printf("Hello, %s!\n", addressee().a); return 0; } 上記コードは C++ では問題ないコードであるが、一方 C99 では未定義動作を含むコードである。理由はJPCERT のページに記述

    nitoyon
    nitoyon 2011/10/16
    CとC++の一時オブジェクトの生存期間の違い。
  • #include の魔力 - Cube Lilac

    何気なく呟いた言葉が確変状態になっていました。 それで、反応を眺めていると「何をやってるか分からない」と言うものがいくつかあったので、一応簡単な補足説明を載せておきます。 #include は指定したファイルの内容をその位置に追加します。 1, 2, 3, 4, 5, 6, 7, 8, 9,例えば、上記の内容を hoge.csv と言う名前で保存して、 int hoge[] = { #include "hoge.csv" }; と記述すると、(プリプロセスが終了すると)以下のように記述した事と同じになります*1。 int hoge[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, }; このように、#include を利用することによって、内容が変化しない*2データ配列などの定義を自力で打ち込んだりコピペしたりせずに済むようになります(なることがあります)。s/int/co

    #include の魔力 - Cube Lilac
    nitoyon
    nitoyon 2010/09/09
    #include で CSV を配列として取り込む(行末に , が必要)。
  • August 25, 2004

    nitoyon
    nitoyon 2010/08/29
    FILETIME 構造体のアラインメント問題。x64 環境で __int64 や LARGE_INTEGER にキャストすると EXCEPTION_DATATYPE_MISALIGNMENT 例外が発生することがある。
  • ASP_NET での Cookie の基礎

    すべての Microsoft 製品 Global Microsoft 365 Teams Copilot Windows Surface Xbox セール 法人向け サポート ソフトウェア Windows アプリ AI OneDrive Outlook Skype OneNote Microsoft Teams PC とデバイス Xbox を購入する アクセサリ VR & 複合現実 エンタメ Xbox Game Pass Ultimate Xbox Live Gold Xbox とゲーム PC ゲーム Windows ゲーム 映画テレビ番組 法人向け Microsoft Cloud Microsoft Security Azure Dynamics 365 一般法人向け Microsoft 365 Microsoft Industry Microsoft Power Platform W

    nitoyon
    nitoyon 2010/02/28
    Cランタイムルーチンと .NET の関数対応表一覧。
  • 演算子の記法 — ありえるえりあ

    Recent entries Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23 Herokuの発音 inoue 2010-12-20 雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18 IPA未踏のニュース inoue 2010-12-15 労基法とチキンゲーム inoue 2010-12-06 フロントエンドエンジニア inoue 2010-12-03 ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25 技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24 雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22 RESTの当惑 inoue 2010-11-22 「プ

    nitoyon
    nitoyon 2010/02/03
    while (count --> 0){} という書き方。矢印演算子に見える。コンパイラは while (count-- > 0){} と解釈する。
  • perlembed - C プログラムに perl を埋め込む

    名前 perlembed - C プログラムに perl を埋め込む 説明 前書き あなたの欲しいのはどれ? Perl から C を使う perlxstut, perlxs, h2xs, perlguts, perlapi を読みましょう. Perl から Unix プログラムを使う バッククオート及び perlfunc にある system と exec を読みましょう. Perl から Perl を使う "do" in perlfunc 及び "eval" in perlfunc, "require" in perlfunc, "use" in perlfunc を読みましょう. C から C を使う 構成を考え直してみましょう. "><C から Perl を使う> このままどうぞ... 道のり C プログラムのコンパイル C プログラムに Perl インタプリタを追加 C プログラ

    nitoyon
    nitoyon 2009/02/04
    C の中で Perl を eval して結果を受け取ったりする方法。
  • 各種チートシートまとめ - goinger的日記

    なんとなく便利そうなのを探してまとめてみた。 リンク切れおそろしい プログラミング関連 C, CPP, C# Cheat Sheets C, CPP, C#のチートシートがたくさんある 249 Prototype Dissected prototype.js チートシート 347 Haskell Cheatsheet Haskell 130 command line ruby cheat sheet ruby commandline チートシート 680 ruby-on-rails-cheat-sheet/ Railsのチートシート 701 google関連 google guide 検索オプションの説明とか 1358 Google Guide Quick Reference Google検索ガイド 9657 google help: cheat sheet google家から提供 40

    各種チートシートまとめ - goinger的日記
    nitoyon
    nitoyon 2009/01/20
    プログラミング言語、DB、Unix、バージョン管理、エディタなどのチートシート色々。
  • アセンブラめも - やや温め納豆

    C言語とアセンブラの対応を理解するには最適化の為のアセンブラ入門がとってもわかりやすい。昼休みに読める。とりあえず頭を整理するためにちょっと書く。アセンブラがちょっとずつ読めるようになってきて楽しい。 #include <windows.h> #include <tchar.h> #include <boost/typeof/typeof.hpp> template <typename T> T __stdcall f(T arg) { BOOL success = FALSE; HMODULE ntoskrnl = ::LoadLibrary(_T("ntoskrnl.exe")); FARPROC ssdt = ::GetProcAddress(ntoskrnl, "KeServiceDescriptorTable"); return arg; } int _tmain(int arg

    アセンブラめも - やや温め納豆
    nitoyon
    nitoyon 2009/01/11
    Visual C++ でデバッグビルドしてアセンブラを読む。スタック、レジスタ(esp,ebp)の動きを解説。/ 「基本ランタイムチェック=既定値」「バッファセキュリティチェック=いいえ (/GS-)」
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    nitoyon
    nitoyon 2009/01/08
    TCMalloc(はやいmalloc http://google-perftools.googlecode.com/svn/trunk/doc/tcmalloc.html), heap-checker, heap-profiler and cpu-profiler. / 1.0がリリースされた。
  • 確率分布ライブラリ

    /* dist.c */ #include <stdio.h> #include "sslib.h" double qnorm(double u) { static double a[9] = { 1.24818987e-4, -1.075204047e-3, 5.198775019e-3, -0.019198292004, 0.059054035642,-0.151968751364, 0.319152932694,-0.5319230073, 0.797884560593}; static double b[15] = { -4.5255659e-5, 1.5252929e-4, -1.9538132e-5, -6.76904986e-4, 1.390604284e-3,-7.9462082e-4, -2.034254874e-3, 6.549791214e-3,-0.01055762

    nitoyon
    nitoyon 2009/01/05
    正規分布、χ2分布、t分布、F分布の分布を求める関数。コピー・改変自由。
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
    nitoyon
    nitoyon 2008/12/03
    依存を調べてコンパイルするファイルを減らしてくれたり、ファイル修正を検知してビルドしてくれたり。
  • Alchemy - Adobe Labs

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

    nitoyon
    nitoyon 2008/11/18
    C/C++ のコードを AS3 に変換してFlashとして動かせるコンパイラ。
  • 無料サービスを使え! – 役立つ無料サービスのレビュー、まとめ、比較記事を紹介

    コンテンツへスキップ 無料で使える!HubSpotの顧客リストの活用法 無料のアンケート作成ツール 比較/まとめ 無料「Excel」 テンプレート 比較/まとめ 無料で使えるノートアプリ比較 (Evernote / OneNote / Google Keep) おすすめの無料Web会議システム5選 WebP Converter 徹底解説!初心者でも直ぐに使える HubSpot は、マーケティング、セールス、サービスのためのCRM(Continue reading 多くの人の声を聞くことで改善できることも多い 企業や団体など運営していContinue reading 就職・転職には必須となる履歴書・職務経歴書 これから就職活動をスタートContinue reading 便利なノートアプリで効率的な仕事をしよう いつの時代も仕事をしていてメContinue reading 近年、リモートワーク

    nitoyon
    nitoyon 2008/11/17
    C がAVMで動くというあれ。LLVMというツールで C のコードを ABC にコンパイルする(?)
  • kur.jp - C言語入門者がポインタで躓く3つの理由

    kur.jp バイオリンと自転車をこよなく愛する大学院生のチラシの裏.たまーに技術的なことも書いたりするかも知れません. Home About Me Link 先日,とある一部上場企業で,「技術系新入社員の方にC言語を教える」と言う,とても楽しいイベントがありました. この講義では,Windows環境にCygwinのインストールから始まって,関数やポインタや構造体等を学び,10日かけてC言語を一通り使えるようになってもらおうと言うものです.さすがに業務として受講しているからか受講生は真剣そのもの.教えるほうにも,ついつい熱が入ります. ところで,この講義では,座学の時間よりも演習の時間をたっぷり取って,受講生に,自分の手を動かしてプログラムを組んでもらっています.具体的には,講義時 間の3分の2以上を演習と,その解説に当てています.演習時間中は,教室の中を歩き回って,どんなプログラムを書い

    nitoyon
    nitoyon 2008/07/15
    ポインタを理解できない理由を分類。仕組みが分からん、メリットが分からん、使い方が分からん。
  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

    Author:あろは (alohakun) WAKATSUKI toshihiro デバッガ開発者見習い(予定) 連絡先 : alohakun ___at___ gmail.com mixi : http://mixi.jp/show_friend.pl?id=182927 twitter : http://twitter.com/alohakun このページはインラインフレームを使用しています

    nitoyon
    nitoyon 2008/06/30
    GCCの内部構造ついてのプレゼン資料。とても濃い。
  • JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記

    はじめに JavaScriptCore (WebKit/Safari の JavaScript エンジン) を C 言語に組込む方法を調べてみました。 解説はソースコード中のコメントを見てください。 まず 以下のコードを hoge.c とかいう名前で保存します。 #include <JavaScriptCore/JavaScriptCore.h> static JSValueRef jsGlobalPrint( JSContextRef ctx, JSObjectRef jobj, JSObjectRef jobjThis, size_t argLen, const JSObjectRef args[], JSValueRef* jobjExp); int main(int argc, char** argv) { if (argc == 1) exit(0); // ---- グローバル

    JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記
    nitoyon
    nitoyon 2008/06/11
    C から JavaScriptCore を叩く話。
  • C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan

    ポインタとは ポインタはC/C++言語の特徴的な機能のひとつである。ポインタ(pointer)を直訳すると「指し示すもの」であり、別の変数や文字列定数の場所を指し示すために使う。また、ポインタを指すポインタ(ポインタへのポインタ)というものも存在する。 このページをお読みいただいている読者にあっては、「C言語 ポインタ」「C++ ポインタ」などのキーワードでWeb検索をしたことがあるかもしれない。そうするとポインタに特化した内容の書籍をいくつか見つけられる。それだけ奥が深い機能ということである。 ポインタの用途 では、ポインタはどんなところで使われているのだろう。C/C++言語では、あらかじめ定義されている関数が多数存在するが、その一覧には、*(アスタリスクあるいはアステリスク)が付いているものをよく見かける。 これらはポインタを表し、主に文字列の操作やファイルをはじめとするデータの入出力

    C/C のポインタの機能--参照渡し - page2 - builder by ZDNet Japan
    nitoyon
    nitoyon 2008/03/31
    ひどいポインタの解説記事。「int *n; *n = 5;」。このあと、オブジェクト指向まで解説するらしいが、先が心配…。 / 著者名で調べたらPHPの人らしい。ポインタ=参照と考えるのはPHP脳(?)。C++で参照は別のものだしね。