C

if-elseで1文なんだね

C言語#include <stdio.h> int main() { int n = 2; while (n) if (n-- > 1) printf("a"); else printf("b"); printf("c"); return 0; } JavaScriptvar n = 2; while (n) if (n-- > 1) console.log("a"); else console.log("b"); console.log("c"); php 1) print "a"; </stdio.h>…

夏目あさ子はかわいい顔してC言語でWin32APIを叩く

となりの怪物くん4巻カバー下表紙に、ミニゲームを作るのにはまっていると言いながらプログラミングしている夏目さんが描かれていますが、パソコンの画面にソースコードが細かい文字で書かれています。以下に見える範囲で引用します。 hBit = (HBITMAP)LoadI…

Cで代入演算子の評価順

C

*(++p) += *p; とあった場合、左から実行されるようで、つまり #include <stdio.h> int main() { int i[] = {0,1}; int *p = i; *(++p) += *p; printf("%d\n", i[1]); return 0; } の結果が2になります。</stdio.h>

Windowsでコマンドライン引数に改行などが使えることを確認した

a.exe #include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { MessageBox(0,lpCmdLine,0,0); } a.js (new ActiveXObject("WScript.Shell")).Run("a.exe a\ta\r\nb"); Win98とWin2000でも使えました</windows.h>…

VC++のインラインアセンブラとgccのインラインアセンブラとではかなり違うので大変でした

C

なお、私はアセンブリはよくわかりません。 私の環境 WinXPSP3 CeleronM VC++2010 MinGW 20101030のやつ VC++ __asm add esp,n インテル記法Cの変数をそのままかけるgcc __asm__("addl _n,%esp"); AT&T記法インテル記法と順番が逆レジスタの前に%命令でb,w,l…

Windowsのコマンドラインに文字コードがある(?)のか?と考えたけど違う

CommandLineToArgvWのページにUnicode ワイド文字で渡されたコマンドライン文字列を解析とあるので、コマンドラインに文字コードがあるのか?あるならどうやって文字コードを判定するんだ?と思いましたが、以下のプログラムをテストしてそういうことではな…