タグ

C,C++に関するginpeiのブックマーク (28)

  • 「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita

    はじめに 先日ツイッターで見かけた呟き pic.twitter.com/33Yk02hu1U — TOMO (@tomozh) October 14, 2020 そういうこともあるのか的な反応もあるようなので具体例を挙げてみることにする。 例1 所謂FizzBuzz問題。 #include <stdio.h> void fizzbuzz(int n) { int next; int i = 1; do { printf(i % 15 ? i % 5 ? i % 3 ? "%d\n" : "Fizz\n" : "Buzz\n" : "FizzBuzz\n", i); if (i++ >= n) next = 0; } while (next); } int main(void) { printf((char[]){""}); // この位置にprintfが無いとなぜか動かない fizzbuz

    「この位置にprintfが無いとなぜか動かないんだ。」 - Qiita
    ginpei
    ginpei 2020/10/20
    未初期化変数とバッファオーバーランの周囲でprintf()を利用して意図的に「たまたま動く」状態を用意した例。前者は関数呼び出しで未初期化領域が非0で埋まることを期待、後者は壊れても影響のないバッファを配置。
  • Build Your Own Text Editor

    Build Your Own Text Editor Welcome! This is an instruction booklet that shows you how to build a text editor in C. The text editor is antirez’s kilo, with some changes. It’s about 1000 lines of C in a single file with no dependencies, and it implements all the basic features you expect in a minimal editor, as well as syntax highlighting and a search feature. This booklet walks you through building

    ginpei
    ginpei 2019/08/29
    C言語で1000行程度のテキストエディタKiloを実装するチュートリアル。第1章はコンパイラーのインストールやMakefileの用意など。
  • https://cs.chromium.org/chromium/src/third_party/WebKit/Source/platform/graphics/CompositingReasons.h

    ginpei
    ginpei 2017/03/14
    合成レイヤー生成の要因一覧。
  • Wandbox

    ginpei
    ginpei 2015/02/02
    C++やJava等様々な言語をオンラインで実行できるツール。
  • asm.js

    Working Draft — 18 August 2014 Latest version: http://asmjs.org/spec/latest/ Editors: David Herman, Mozilla, <dherman@mozilla.com> Luke Wagner, Mozilla, <luke@mozilla.com> Alon Zakai, Mozilla, <azakai@mozilla.com> Abstract This specification defines asm.js, a strict subset of JavaScript that can be used as a low-level, efficient target language for compilers. This sublanguage effectively describes

    ginpei
    ginpei 2013/03/18
    C言語をJavaScriptにコンパイルして使う的なアレの仕様。
  • ネタプログラム - 桜花な日々

    まずはこれを見て欲しい http://twitter.com/rofi/status/8421655500 おわかりいただけただろうか ということで、ネタプログラムでした! 解説 まぁただ出しただけではあれなので一応解説を。 以下はものすごく変態的システム依存をしてるのでネタ程度にお楽しみください。 決して重要なプログラムではこのような事はしないでください!*1 目的 以下、プログラムの流れを制作の時と同じ流れで解説していきます*2。 まず、このプログラムの目的とは「C言語でASCIIの文字の機械語だけで"Happy New year!"と表示するプログラムを書く」です。 元々年賀状用のネタなので(^^; 大まかな流れ ということで、C言語側のプログラムの流れは以下のようになります。 文字列表示プログラムを文字列で記述 制御をその文字列に移す C言語側は以上です。 簡単ですね。 次に文字列

    ネタプログラム - 桜花な日々
    ginpei
    ginpei 2010/04/22
    機械語を文字列に変換して実行するっていう。すげー!
  • C++ のプログラムのデバッグを楽にする方法

    Google が公開しているソフトウェアの解説シリーズ(→その1 , その2)の続きです。今回は google-glog を使ってスタックトレースを表示する方法についてご紹介します。 C++ でプログラムを書いているとよく遭遇するのがセグメンテーション違反というエラーです。不正なアドレスへのアクセスなどによりセグメンテーション違反が起きると、通常、 UNIX 系の OS では SIGSEGV というシグナルによってプログラムが終了するとともに、 core というファイルが作られます。 core ファイルにはデバッガから参照できるいろいろな情報が残っていますが、多くの場合に役に立つのは、スタックトレースという情報です。スタックトレースを見れば、プログラムがどこでクラッシュしたのか、どのような関数を経由してそこにたどり着いたのかがわかります。プログラムがクラッシュした箇所を特定できれば、単純な

    C++ のプログラムのデバッグを楽にする方法
  • C++を客観的に切る

    copyright 1995 Kubo こうすれば良くなるC++(friend,static,inline,private,virtual) NetNews発言を再編集しました。 fj NetNews--> fj.comp.lang.c , fj.comp.lang.c++ 文章の繋がりが変かもしれませんが想像力でお読み下さい。 friend C++の変な仕様にfriendがあります。 世間では、friendを効率化の名目とともに容認する風潮がありますが、はっきり言って設計をしない人達 の戯言にすぎません。 きちんとした設計を施し、更にC++のプログラム仕様に落とせばfriendなんて 出てこないはずですが? さて、その真偽は? 思うに、friendを使用せざるを得ない局面が生じること自体、既にアプリケー ション作成者の設計ミス・能力不足だと思います。(継承されているアプリケー ション・顧

    ginpei
    ginpei 2008/10/14
    friend
  • http://www13.plala.or.jp/kmaeda/winc/rotate.htm

    ginpei
    ginpei 2008/06/03
    画像を回転させたりしながら描画するWin32API、PlgBlt()の解説。回転座標の算出方法、マスクの自動生成方法も別ページに。
  • VS2008 ショートカット

    https://blog.goo.ne.jp/hiro239415/cap?eid=5041aec497e02427c2b123aef07977e3&capkey=bb9ddb66ec3e7741652582ee14d5c709/WebView2 1.0.1150.38

    ginpei
    ginpei 2008/03/18
    VS2008でアサインされているショートカット色々。未掲載のCtrl+K, Ctrl+Iのクイックヒントも便利。
  • 初級C言語Q&A(12)

    初出: C MAGAZINE 1996年5月号 Updated: 1996-03-12 [←1つ前] [→1つ後] [↑質問一覧] [↑記事一覧] [ホームページ] ビット操作、論理演算 C言語は低レベルの高級言語といわれますが(?)、理由の一つとして、シフトや マスクといったビット操作が比較的簡単に実現していることがあげられます。ア センブラから言語を学んだ場合は、これらの操作はごく簡単なのですが、高級言 語からいきなりプログラミングを始めた人には、ビット操作という概念そのもの に慣れていないため、分かりにくいかもしれません。 ビット操作 Q 【ビット操作】 そもそも、ビットとは何なのか。 A コンピュータの中では、数値は0と1という二つの値で表現されています。たと えば、0と1のいずれかを入れることができる箱があると考えてみてください。こ れだけでは1と0の2通りの値しか表現できません

    ginpei
    ginpei 2007/08/09
    論理演算子は必ず左から順に評価される事に決まっているらしい。安心。
  • C/C は永久に不滅です!----目次:ITpro

    皆さん,お待たせしました! “プログラミング言語の王道”C/C++言語の特集です。「Visual Basicでプログラミングを始めたけど,いつかはC/C++をマスターしたいと思っていた」「以前にCを勉強したことがあるけど,ポインタで挫折しちゃった」「当はVisual C++に興味があるのだけれど,なかなか手が出せなくて…」「言語仕様も大事だけど,コンパイラの仕組みもきちんと教えてやってほしい」──そんな皆さんの思いや期待に応えます。あなたもプログラミングの王道を極めましょう。 Part1 C/C++は永久に不滅です! Part2 C/C++の疑問にまとめてお答え Part3 ゼロから始めるVisual C++ 2005入門 Part4 誰もがつまずくポインタを詳細解説 Part5 ウラから見たコンパイラ~リンカー~ローダーの仕組み Part6 クラス/継承/多態性をサンプルで理解

    C/C は永久に不滅です!----目次:ITpro
    ginpei
    ginpei 2007/08/09
    C/C++の特集。ポインタの解説やコンパイラ、リンカ、ローダの説明など。
  • マルチスレッドプログラミング (POSIX、Win32)

    このページではマルチスレッド、プロセス間通信、スレッド間通信およびタイマープログラミングについて紹介します。(いやー。好きだなこういう話題は。) 記述例およびサンプルに含まれるファイルの全部、または一部を使用したことによる損害等について、一切の責任を負いません。また、サンプルの文字コードはS-JISで提供しますので、ご使用の際はWindowsからFTPするなどして適切な文字コードに変換してください。尚、サンプル中には説明の簡略化のため意味のないコードや、実用上問題のあるコードも含まれていますのでご注意ください。 [POSIX]pthread_create [POSIX]スレッドの同期(ミューテックス) [POSIX]タイマー [WIN32]_beginthreadex [WIN32]スレッドの同期(ミューテックス) [WIN32]共有メモリ [WIN32]スレッドの同期(イベント) [PO

    ginpei
    ginpei 2007/05/12
    Unix/LinuxやWindowsでスレッドを使うサンプル。
  • Win32アプリケーションのデバッグ方法 [VC++の使い方]

    Win32のデバッグ Win32アプリケーションでは、デバッグ情報をコンソールに出力するようなこともできません。手軽なMessageBox関数を使う方法と、デバッグをサポートするAPIについて解説していきます。 MessageBoxを使う MessageBox関数は簡単なデバッグには便利です。例えば MessageBox( NULL, "呼ばれたよ", "title", MB_OK); とすれば、次のようなダイアログが表示されます。 メッセージボックスの例 MessageBoxで現れるダイアログはモーダルなので、ダイアログを閉じるまで制御は帰ってきません。例えば、アプリケーションが異常終了してしまう場合は、原因となりそうな周辺に1行づつMessageBox関数を挿入すれば、どこで異常終了が発生しているかを判断できます。 ただし、MessageBoxには、printf関数のように変数の値を表

    ginpei
    ginpei 2007/05/01
    VC++でのデバッグ方法色々。
  • DIBをビットマップファイルに保存する

    これまで、何度もビットマップファイルを読み込みDIBを作成してきました、基的に、ビットマップファイル(BMPファイル)のビット列とメモリ上のDIBとでは先頭のヘッダが僅かに違うだけなので、読み込む時には先頭部分をのぞいてメモリに読み込めばそのままDIBになります。今回は、逆にメモリ上のDIBをビットマップファイルにしてみました。処理としては、ヘッダの調整程度なのでそれほど難しくはありません。 ビットマップファイルの構造 フルカラービットマップファイルの構造は、以下のようになっています。 BITMAPFILEHEADER BITMAPINFOHEADER ビットマップのピクセル列 このうちBITMAPINFOHEADERは、BITMAPINFOからカラーテーブルの先頭アドレスをのぞいたものです(つまり4バイト小さい。この差を忘れるとハマるので注意!)。BITMAPFILEHEADERは、す

  • OBB vs AABB - Radium Software Development

    iPhoneの一般修理店は予約なしでも来店できる? 基的には飛び込みで修理に行ってもOK iPhoneを置いていたソファにうっかりと腰かけてしまい、パネルを割ってしまった、こんな時はスマホの一般修理店へ行きましょう。画面割れは、スマホやタブレットの故障原因として非常に多いものです。予約なしで突然お店に行っても平気かしらと、不安に思う方々もいらっしゃるかもしれません。結論としては特に問題はなく、予約なしで訪問しても画面割れの修理はお願いできます。 ただし他のサービス業のお店同様、予約なしの場合、お店が混雑していると順番待ちをしなければいけないです。特に繁盛しているスマホ修理のお店だと、行列が店内で出来ており、予約なしだと、自分の順番が巡ってくるまで長時間待たされる可能性があります。平日の朝、昼なら利用客が少ない場合が多く、飛び込みでも比較スムーズに修理が頼めます。 予約は入れた方が時短に、

    ginpei
    ginpei 2006/12/12
    ハンガリアン記法の真実。本来は型ではなく、変数の持つ性質や用途を頭に付加するスタイルだったようだ。うーむむむむ。
  • Winsock Programmer's FAQ

    このページは、Winsock Programmer's FAQ の日語訳です。この FAQ の原文はWarren Young 氏によるもので、Winsock Programmer's FAQのサイトで公開されているものです。このページで公開してい る日語訳は、同氏の許可を得て、私(Keisuke MORI)が翻訳、公開して います。この FAQ のオリジナルの歴史や著者については、序文 の章を参照して下さい。 現時点では、まだ全部の章の翻訳は完了していません。未訳の章は 原文のままで残っていますのでご了承ください(実はこの翻訳は、かな り以前から着手していたのですが、どうも遅々として進まないので:-) まずはできたところから公開することにしました)。 なお、この日語訳FAQは、常に最新であるという保証はできません ので、最新の情報については適宜オリジナルのFAQを参照してくださる よ

    ginpei
    ginpei 2006/10/27
    Winsockのあれこれ。サンプルプログラムもあって便利かも。
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    ginpei
    ginpei 2006/09/20
    カレントディレクトリとかコントロール色々とかが載っている。
  • http://homepage1.nifty.com/aok2/004/win01.html

    ginpei
    ginpei 2006/04/14
    QueryPerformanceCounter() を使った高精度タイマのサンプル。
  • C-C によるWin32API - APIサンプル集

    C/C++によるWin32API /* 2007/3/25 プログラムは4年ぐらい引退していましたが、復帰することになりましたので、リハビリとしてこのサンプル集を見直して再度、公開しました。見直す際にはWindowsXP+(Borland C++ Compiler 5.5とVisualC++5.0)で確認しました。このサンプル群は6年前に私がC/C++の勉強のために作成したものですが、なんせ「C/C++を勉強しはじめた4ヶ月程度のコーディング」のままなので仕事などで利用する際にはエラー処理やメモリ解放などきっちりとしたほうがよいところが多々あると思います。ですが、情報としてはそれなりに有益かとおもいますので、改変しながらつかってやってください。皆様のお役に立てれば幸いです。 一括ダウンロード:papy's softwarelibraryからダウンロード  */

    ginpei
    ginpei 2006/03/26
    役に立つ、具体的なサンプルがたくさん。