タグ

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

  • 「この位置に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の用意など。
  • 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にコンパイルして使う的なアレの仕様。
  • VS2008 ショートカット

    凄いなぁ もう完全なプログラマーですな 俺もWEB系のプログラマーになったばかりです。 現在PHPの勉強しながら仕事してます。 因みに、あっちには全然顔出せてません(^^;) 去年の10月に1度だけ… まぁ、家からNETに繋がなくなったからネカフェからなんだけど そろそろ光繋げようかな それと、あきさんって あのあきさん? ※どのあきさんだ(笑) 新○上○のかな?

    ginpei
    ginpei 2008/03/18
    VS2008でアサインされているショートカット色々。未掲載のCtrl+K, Ctrl+Iのクイックヒントも便利。
  • Win32アプリケーションのデバッグ方法 [VC++の使い方]

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

    ginpei
    ginpei 2007/05/01
    VC++でのデバッグ方法色々。
  • 1