by shigemk2

当面は技術的なことしか書かない

C

cmake

C

cmake CMakeはコンパイラに依存しないビルド自動化のためのフリーソフトウェアであり、様々なオペレーティングシステムで動作させることができる https://ja.wikipedia.org/wiki/CMake https://blog.jetbrains.com/jp/2014/09/17/498

CLion

C

C/C++のIDE https://blog.jetbrains.com/jp/2014/09/08/486

strncpy

C

strncpy 文字列をn文字コピー。いちおうC++でも使える。

フレームポインタとコンパイルオプション

C++ C

フレームポインタはデバッガがスタックの「パックトレース」を追う場合に利用されます。「パックトレース」というのはスタックフレームの構造を遡って追うことで、関数呼び出しがどのような順序で行われているのかを解析することになります スタックフレーム…

`sqrt' に対する定義されていない参照です

C

[gcc]「`pow' に対する定義されていない参照です」 - Golden Stategoldenstate.cocolog-nifty.com #include <stdio.h> #include <math.h> int Function (int n) { if(n <= 2) { return 1; } else { printf("f: %f\n", floor(sqrt(n)) + 1); return (Function (floor(sqrt(n)</math.h></stdio.h>…

gcc -m32まわりでとらぶる on CentOS6

C

そうだね、-m32オプションをつけたらこけたね。 後期実験 Let's make your compiler! 後期実験 Let's make your compiler! で、libstdc++-devel.i386などを入れたんだな。 http://www.linuxweblog.com/blogs/sandip/20080718/support-32-bit-development-lib…

C言語のプログラムをアセンブル→オブジェクトファイル出力→リンクで実行する

C

適当な概要 gccでアセンブラを出力しそれを実行ファイルにする inc・dec命令 inc・dec命令 # アセンブリ出力 $ gcc -S translate.c # アセンブル $ as -o translate.o translate.s # リンク $ gcc -o translate translate.o $ ./translate 実行環境は、x86_6…

malloc

C

malloc

ポインタ事始め

C

なるほど、わからん。 あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照するものである ポインタ (プログラミング) - Wikipedia

brainfuckファイルをC言語にトランスレートする

標準入力から大文字を小文字に変換する

Brainf*ck

掛け算を解析して出力

brainfuckコードを解析してHello, world!を出力するプログラム

面倒なので伏せ字にしないのをお許し下さい。 ソースコード brainfuck このコード自体はHello worldプログラムの一覧 - Wikipediaに書いてある。

strcpy

C

strcpy

winnt.h下における型

型 長 備考 BYTE 1 バイト WORD 2 ワード DWORD 4 ダブルワード QWORD 8 クアッドワード LONG 4 ロング LONGLONG 8 ロングx2 ULONGLONG 8 Unsigned(符号なし)ロングx2

文字列Aを返すEXEファイルを作る #startexe

C

概要 $ gcc makeexec.c $ ./a.exe $ ./test.exe コード デバッグ 逆アセンブル $ objdump -d a.out セクションヘッダ情報の要約を表示 $ objdump -h a.exe すべてのヘッダ情報を表示 $ objdump -x a.exe まとめ 空のファイルに必要なバイナリを流すコードを…

C言語のビット演算 ちるだ

C

コード #include <stdio.h> int main(void){ int bn; bn = -1; if (bn & ~077777) { printf("%d\n", bn); } bn = 0; if (bn & ~077777) { printf("%d\n", bn); } bn = 1; if (bn & ~077777) { printf("%d\n", bn); } bn = 32767; if (bn & ~077777) { printf("%d\n", </stdio.h>…