タグ

C++に関するyaslabのブックマーク (8)

  • extern "C" - debian36の日記

    前回は、C++ソースで定義された関数を Cソース内でコールする場合に起こる問題について書きました。 そのキーワードが、「マングリング」でした。 前回:http://d.hatena.ne.jp/debian36/20080226 では、その問題を回避する方法、すなわちマングリングを避ける方法について、今日は記します。 ずばり、その答えが、extern "C"  です。 この修飾子を見たことがあるかたも多いのではないでしょうか。 自分も、人のコードを見ていていると、たまに extern "C"{ .... .... } なんてコードが登場して、「ん〜、これは、C言語として解釈しろ」ってことなのかなぁってなんとなく思っていた程度でした。 確かに、extern "C" は、C言語として解釈して下さいよって、コンパイラ(g++)にお願いするものなのですが、なんのために、そのようなお願いをするのかと

    extern "C" - debian36の日記
    yaslab
    yaslab 2017/05/19
  • マングリング - debian36の日記

    今日の午後は、ずっとC++(g++)と闘っていました。。。 これまで C言語でコーディングされていたシステムの一部が、C++に変更されたたため、自分が担当する部分もそれに対応する必要がありました。 ※ プロジェクト進行中に言語変更なんて自由やなぁ・・・(^^; そんなん、簡単やろ〜、 C++って、C言語から派生したものやろ? C++って、C上位互換やろ? どうせ、バイトコードになっちゃえば C も C++ もいっしょやろ? 的に、思っていたのですが、問題の解決に午後丸々かかっちゃいました・・・ なんか身体的に疲れちゃいました。 組み込みなどの一部分野では、じわじわとC言語からC++言語への移行がはじまっている(? : 未確認情報)ので、 CとC++が混在するシステム(CとC++で1つの実行体)を作るケースがあるかもしれません。 そんな場合に役立つかも、ということで、今日学んだことをまとめま

    マングリング - debian36の日記
    yaslab
    yaslab 2017/05/19
  • Google Sites: Sign-in

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • C++クラス設計に関するノート

    C++が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。よくよく注意しないと、削除し忘れたり、同じオブジェクトを2度削除してしまうというエラーが発生します。このノートでは、オブジェクトを「値オブジェクト」と「参照オブジェクト」というカテゴリに分け、詳細設計の段階で注意すべき点を整理しておきたいと思います。 0. はじめに 私自身今までいくつかのプログラミング言語を使ってきましたが、C++ が他のオブジェクト指向言語と比べて難しいのは、やはりメモリ管理をプログラマが自分でしなければいけない点だと思います。例えば、 Person* person = new Person(); と生成したオブジェクトは、使い終わったら次のように削除しなければなりません。 delete person; 生成してすぐ削除するなら簡単なのですが、実際に

    C++クラス設計に関するノート
  • [C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド

    新機能一覧の概要はこちら→ [C/C++規格: 10] C11の新機能 その1 -- 新機能概要 [2011-04-01変更: char16_t、char32_tのエンコーディングについてコメントを頂いたので修正] あかん。一ヶ月以上空いてしまった。 次はメモリ順序化のモデルとアトミック型について書こうと思ってたけどまだ読めてない><。 というわけでお茶濁しながら別の話題で。 今回紹介するのはユニコード文字・文字列。 これらはC++11で一歩早く採用されています。wchar_tの場合と同様に微妙な違いもありますが。 C++11の方もまだ見れていないので具体的な違いを全部挙げることはできませんが、例えば新しい型char16_t、char32_tが、C++では独立した型なのに対し、Cでは他の型のtypedefだとか。 ■ 新しい文字型 <uchar.h>をインクルードすることで、以下の型が定義

    [C/C++規格: 12] C11の新機能その3 -- ユニコード文字・文字列 | Yoh2の日記 | スラド
  • パスワード認証

    L0Hの異空間 Good bye.

  • 文字コードの変換ライブラリ | プログラマーズ雑記帳

  • ストリーム入出力を使用して、文字コードがUTF-8なファイルを読み書きする - C++Builder好きの秘密基地

    Boostのutf8_codecvt_facetをインクルードして、imbueでストリームに設定してやればOK。 libs/detail/utf8_codecvt_facet.cppもインクルードしてやらないとリンクエラーが発生。 UnicodeStringをstd::wstringにしてもちゃんと読み書きできる。 参考URL: http://grayhole.blogspot.com/2008/11/utf8.html http://d.hatena.ne.jp/Cryolite/20041029 #include <iostream> #include <fstream> #include <vcl.h> #pragma hdrstop #define BOOST_UTF8_BEGIN_NAMESPACE \ namespace boost { namespace detail { #

    ストリーム入出力を使用して、文字コードがUTF-8なファイルを読み書きする - C++Builder好きの秘密基地
  • 1