タグ

cとc++に関するadvblogのブックマーク (25)

  • C系言語(C,C++,Objective-C,Java)で高階関数を使ってみる - WonderPlanet DEVELOPER BLOG

    はじめまして。エンジニアをしています、鷲見と申します。 今回は高階関数とラムダ式について書いてみようと思います。 高階関数とは 高階関数(こうかいかんすう,higher-order function)とは引数に関数を指定できたり、 戻り値として関数を返せる関数で、関数型言語などで使用されます※1。 高階関数を使用するメリットは、単純な関数を組み合わせることにより、 柔軟性の高いコードを書くことが出来るという点です。 高階関数の例として関数型言語Schemeのmap関数を見てみます。 map関数は、指定したリストのそれぞれの要素に対して同じ関数を適用する関数です。 例えばリストの要素を全て2乗したい場合は以下のように書くことができます。 ; xの2乗を返す関数を定義 (define (square x) (* x x)) ; リストの要素(1から5までの数値)を2乗する (map squar

    C系言語(C,C++,Objective-C,Java)で高階関数を使ってみる - WonderPlanet DEVELOPER BLOG
  • C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴

    Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell

    C言語の代表的なウェブリソース10選 - YAMDAS現更新履歴
    advblog
    advblog 2011/02/21
  • Cのコールバック関数をC++のメンバ関数にバインディングする方法 - kazuhoのメモ置き場

    たとえば libevent のような C 言語でかかれたイベント駆動型のライブラリを C++ から使っていると、C++ のメンバ関数をコールバックとしてセットできたらうれしいことが多いですよね。以下のようにすればできます。 たとえば、コールバック関数をセットする関数の型が、 void set_foo_callback(void (*)(void* cb_arg), void* cb_arg); なら、以下のようにクラスとメンバ関数を引数にとるテンプレート関数を定義し、 template <typename T, void (T::*FUNC)()> void to_foo_callback(void* cb_arg) { T* obj = reinterpret_cast<T*>(cb_arg); (obj->*FUNC)(); }以下のように受け渡せばいい。 class K { publ

    Cのコールバック関数をC++のメンバ関数にバインディングする方法 - kazuhoのメモ置き場
    advblog
    advblog 2011/01/26
  • C/C++ 迷信集 | 株式会社きじねこ

    C/C++ を使うプログラマは大勢います。しかし、その多くは OJT を通して言語を学んだのではないでしょうか? 実はそこに大きな落とし穴があります。 コンピュータや工学のことをよく知らない人たちは、時代の先端を歩むプログラマには「迷信」など無関係だと信じて疑わないかも知れません。しかし、迷信や誤解はどんな世界にも常に存在しています。 というわけで、ここでは C/C++ にまつわる迷信、誤解、よくある間違いを採り上げていきます。非常に後ろ向きな企画ですが、暇つぶし気分転換に読んでみてください。もしかすると、ご自身が迷信にとらわれていたことに気付くかもしれません。 追記(2009/03/15) このコーナーでは、C/C++ にまつわる迷信、誤解、よくある間違いを扱っています。決して「迷信」だけではないのですが、タイトルにはすべて[迷信]を付けています。 これは、主に検索エンジンでタイトルを見

    advblog
    advblog 2009/10/19
  • 動作合成とC/C++/SystemC/SystemVerilogの協調設計 ―― Cynthesizerの活用事例

    動作合成とC/C++/SystemC/SystemVerilogの協調設計 ―― Cynthesizerの活用事例 渋谷 貴利,内海 功朗,森 義一 ソフトウェアのどの部分をどのような思想でハードウェア化するのか,事例をもとに解説する.具体的には米国Forte Design Systems社の動作合成ツール「Cynthesizer」を利用し,C言語で書かれたソフトウェアの一部をVerilog HDLなどのハードウェア記述言語に変換する.その後,SystemVerilogのDPI機能を利用してハードウェアとソフトウェアの協調検証環境を構築する. (編集部) ソフトウェア(アルゴリズム)をハードウェア化することは以前から行われてきましたが,最近の設計技術の発展により,容易かつ迅速に実現できるようになってきました.ハードウェア化による利点として, 大幅な性能向上低消費電力化(低クロック化)CPU

  • MergeDoc Project

  • BohYoh.com - 柴田望洋後援会オフィシャルホームページ by 言語科学研究所

    13,500をこえるページから構成されるサイトは、コンピュータ・プログラミング・情報処理技術者試験対策・中国武術などに関する情報が満載です。また、多くのプログラムや約1,000ページ分のPDFファイルを閲覧・ダウンロードできます。ゆっくりとご覧ください。 What's New 2023/9/5(火) ■ 『新・明解Python入門 第2版』の「索引」のPDF全17ページを公開しました。 2023/8/30(水) ■ 『新・明解Python入門 第2版』のソースプログラムを公開しました。 2023/8/29(火) ■ 著書のコーナーに、新刊『新・明解Python入門 第2版』のページを開設しました。 2023/3/6(月) ■ 著書のコーナーに、新刊『新・明解C言語実践編 第2版』のページを開設しました。 2022/9/29(木) ■ 『新・明解C言語中級編 第2版』の「索引」のPDF全1

  • スタックオーバーフローのハンドリング (Stack Overflow Handling)

    作成日:2004.04.12 更新日:2006.02.19 更新記録 (2004.04.12) 3/6、 3/11、 3/13 の日記をまとめて作成。 (2004.05.07) 文章を修正。サンプルコードを追加。 (2005.01.20) alternative → alterante に修正。 (2005.02.13) 追記を記述。 (2006.02.17) linux_stack_info.cpp の実装に誤りがあったので修正。 (2006.02.19) BSD 系OS でのスタック領域情報の取得の仕方を追加 初めに C/C++ でプログラムをしているとつい忘れてしまうのがスレッドのスタックオーバーフローの問題。 最近の OS はスレッド当たり 2〜8MB のスタック領域を持っているため、よほどのことがない限りスタックが溢れてしまうことはない。 だが、再帰や alloca を積極的に使

  • C++ 0xの参考資料 - プログラマーの学習記録

    まだ、正式発行はされていないC++ 0xだけど、すでにドラフトは出ていて、内容的にはほぼ固まっている様子。 C++ 0xの参考資料としては、以下を参考にしています。 ・http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2652.html 大元のレポートですね。これが読めればいいのですが、あいにく英語は苦手です。 ・http://ja.wikipedia.org/wiki/C%2B%2B0x Wikipediaは便利ですね。C++ 0xについては、Wikipediaを参考にしようと思います。日語がいいよね。 ・http://d.hatena.ne.jp/faith_and_brave/ C++プログラマー、アキラ氏のblogです。ブログ読んでるんですが、正直理解できません。理解できるようにがんばります。

    C++ 0xの参考資料 - プログラマーの学習記録
  • 参照とポインタの違い - 2008-12-11 - mad日記

    科学者とあたまを書いたひとだけれども、この名前どっかで聞いた事があるなと思ったら, 昨日劇団青年座の人の講演で聞いたのだった。 「フユヒコ」という劇団青年座の公演が明日NHKで放送されるらしいです。冬彦ってのは寺田寅彦のペンネームらしい。 http://cgi4.nhk.or.jp/hensei/program/p.cgi?area=001&date=2008-12-12&ch=31&eid=9950 おもしろそうだから観てみようかな。 ところで小柴先生が同じような事を言っていたのを思い出した。このインタビューは面白い。 一流の理論家は、「自分の理論では、ここまでは使えるけれど、これから先は分からない」という適用限界をいつも意識している。ところが二流の理論家というのは、自分が名前を覚えた、あるいは、使った理論で何でもやれると思ってしまう。二流の理論家に困らされるのは、新しい実験計画が出てき

    参照とポインタの違い - 2008-12-11 - mad日記
  • C#からC++に配列を送る方法 - ymlabのブログ

    昨日より、やっとWindows+ Cygwin-XServer and Cygwin 環境で、 Xaw+X11環境で作成された指導教官の先生が作った楽譜ソフトを動かすことができた。 しかし、自分の作ったプログラムと連携させるには、あまりにも面倒なので、 同じプログラムの中で実行できるように考えてみる。 今のプログラムはC#言語で動かしているので、X11なんて、動くわけがない。 ところがほしい情報は、数値データなので、GUIは、必要ではない。 そうなると、ただのC言語だ。 C言語をC#言語に移植することにする。 ところが、移植をしていく途中で、元データに、自己参照構造体があることを発見する。 C#言語には、ポインタの概念が隠蔽されているので、 これを、まともに実装するのは、檄大変であることに気づく。 そこで、いったん元のC言語のデータを、Visual StdioのC++言語/CLI で、 ク

    C#からC++に配列を送る方法 - ymlabのブログ
    advblog
    advblog 2008/12/13
  • C/C++ 免許制 その 2

    C/C++ 免許制はどうですか? の続き 774RR さんの書き込みより C/C++ ってカバーする分野が広い(広すぎる)ため、ある分野の専門知識は他の分野では不要なものが多いです。 俺のメイン仕事のちっこいワンチップマイコン組み込み系と πを42億桁計算する超多倍長演算と Web アプリケーションの安全性を確保するためのセキュリティ確保のためのシステムと かさなる専門知識はあまりありません。 設計と実装はある程度分けて考えられると思います。「πを42億桁計算する超多倍長演算」はどちらかというと実装面の影響が強く、「Web アプリケーションの安全性を確保するためのセキュリティ確保」は設計面での影響が強いですよね?security 上の問題が発生することはどの言語でも多いですが、C/C++ の大きな問題として他の言語に比べ実装 (coding) で問題が生じやすいというのがあると思います。

    advblog
    advblog 2008/12/13
  • C/C++ 免許制はどうですか?

    C/C++ の将来性 その 4 の続き 過去の資産を継承するためにC/C++しか選択肢が無い、かと言って適切な人材をアサイン出来ない場合そうなるのは仕方ないってのが現実ですよね。 # それが良いとは言いませんが C/C++でなければいけない案件は現実的に存在します。ちゃっぴさん的にはどうすればよいと思いますか? Programmer 免許制について以前は否定的だったんですが、C/C++ や assembler のような low level を扱う言語に対しては免許制導入したほうがいいと思います。 というのは、 他の言語に比べ脆弱性が生じやすい 他の言語に比べ脆弱性が生じた場合の影響が甚大 という状況があるからです。 多くの方が同意されることでしょうけど C/C++ は素人が扱える言語ではありません。 (security 面も含んで) まともに動作させるためにはものすごく深い知識を必要としま

    advblog
    advblog 2008/12/13
  • C/C++ の将来性 その 4

    だいぶ時間が空いてしまいました。。。すいません。 また、題名とかなり乖離した内容になってます。すいません。 とりあえず、有言不実行の予告を書いておくと、次で oganac さんの意見に反論します。 の続きです。 ちゃっぴさんの前提は、「スキルの乏しい人がC/C++を使うと凶器になるから使わせないようにすべき」ですよね。 私は、「スキルの乏しい人」にはC/C++仕事が回らないので、凶器になる局面は生まれないと考えてます。 いろいろなところ見てますが、当にひどいところでは人が望む望まないに関わらず、とりあえず「ヤレ!」ってのが結構あったりします。どうでしょうか? 少なくとも、使い物になったかは別として、数十人のど素人が C/C++ な projects に投入されたことをしっています。 逆に C# や Java や VB がちょっとできる人が次の案件として長い勉強期間を置かずに C/C+

    advblog
    advblog 2008/12/13
  • 漸くCを切り離したぞ! - 神様なんて信じない僕らのために

    ……ということで、漸くCを切り離しました。 1ヶ月かかった。 ちかれた。 そして今さらの反応。 どんだけゆとりですか(笑) 各ビットのネーミングとかはそりゃああるだろうけど、 その程度のビット演算で悩んでどうするのかと。 あとはまあ、マクロでくるむくらいはしていいとは思うけどさ。 404 Not Found うーん、ビット演算ではなくて、 そのビット演算の結果、どうなっているのかが読み取りづらいんですよねえ、と思った訳なのです。 「で、そのビットはどんな効果を及ぼすの?」という感じで。 いや、過去の自分が読んだら、こいつはゆとりだ! とか思うんでしょうけれども。 hoge_flag |= HOGE_FLAG; ... if (hoge_flag & HOGE_FLAG) { hoge_flag &= ~HOGE_FLAG; } が至るところに出現するんですが、これが立っているとどうなるの?

    漸くCを切り離したぞ! - 神様なんて信じない僕らのために
  • C++0x C99対応 - Faith and Brave - C++で遊ぼう

    C++0xでのC99対応は以下 long long int型 __func__ 定義済みマクロ __STDC_HOSTED__ __STDC_VERSION__ __STDC_ISO_10646__ _Pragma演算子 可変引数マクロと空引数マクロ ユニバーサルキャラクタ名 文字列リテラルとワイド文字列リテラルの結合 識別子にユニバーサルキャラクタ名と、処理系依存文字の使用を許可(先頭数字はダメ) N1653 Synchronizing the C++ preprocessor with C99 C++0x言語拡張まとめ

    C++0x C99対応 - Faith and Brave - C++で遊ぼう
  • ホワット・ア・ワンダフル・ワールド GCC Hacks セミナー資料

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

    advblog
    advblog 2008/11/29
  • C CodでCコードをスクリプトのように扱う

    CまたはC++で書かれたコードが既に存在し、その機能の一部をプロトタイプとしてWebに公開したいという場合には、C言語をスクリプティング言語のように扱うことを可能とする「C Cod」が最適だ。 C Codは、C、C++、またはObjective-Cコンパイラのフロントエンドとして、C言語をスクリプティング言語のように扱うことを可能とするものである。C Codには、C Server Pagesが付属している。C Server Pagesは、WebアプリケーションをCまたはC++で記述し、それをオンデマンドで自動的にコンパイルできるようCGIをサポートする。 Ubuntu、Fedora、openSUSE用のC Codパッケージは存在しない。今回は、64ビットのFedora 9マシン上でバージョン1.2.8のソースをビルドした。コンパイル中に小さな問題が生じたが、以下に示すように、CFLAGSに

    C CodでCコードをスクリプトのように扱う
  • 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

  • ホワット・ア・ワンダフル・ワールド libtcc を使えば C は高階関数型言語になる

    ふと,qsort の第四引数に直接 C のコード片を渡せたら面白いんじゃないか ? とか思って,TCC を使ってみたら簡単にできました. つまり,こういうこと qsort(... , compile("int lambda(int *x, int *y) {return(*x>*y)?1:(*xtcc-0.9.23.tar.gz とかを持ってきて,tar xvf して configure ; make して su して make install しておいてください.TCC には,普通の爆速 C コンパイラ tcc と,C 言語のコード片を機械語に変換するライブラリ libtcc.[h/a] が含まれています.libtcc の API については,libtcc で C のソースコードを eval などを. ソースは,一見長めに見えますが,これは単に,libtcc.h で API として公開さ