C言語

WindowsのMinGWでdxlib(DXライブラリ)を使う手順を紹介する

WindowsのMinGWでdxlib(DXライブラリ)が使えるようにしたので、その手順を紹介していきます。 また、今回の手順は公式ドキュメント「DXライブラリ置き場 使い方説明」を参考にしています。 開発環境 WIndows 10 (2019/ 05/ 15時点) MinGW Thread model: wi…

C言語の配列で範囲外にアクセスできてしまう理由と対策法

長らくRubyやjavaScript等の高級言語を扱っていると、C言語の原始的な処理に戸惑う時がある。 実際に今日C言語で配列を扱っていた時に、自分が定義した配列の範囲外に誤ってアクセスしたせいで思わぬ動作をする、と言うミスをしてしまった。 そこで今回は、C…

C言語のfopen関数で「警告: 2 番目の ‘fopen’ の引数へ渡すときに整数からキャスト無しにポインタを作成しています [デフォルトで有効]」と言うエラーが出たときの対処法

解決してみると相当しょうもない事でハマってしまったので、メモとして解決策を書いておきます。 今回C言語のfopen関数を触って出たエラーは以下の通り。 bf.c:50:3: 警告: 2 番目の ‘fopen’ の引数へ渡すときに整数からキャスト無しにポインタを作成してい…

C言語の型キャストについてのまとめ

C言語の型キャストについて勉強したので、まとめ。ちなみに、型キャストは型変換とも呼ばれている。 計算における型キャスト C言語において異なる型同士で計算を行った場合、より精度の高い型に合わせて計算が行われるようになっている。 例えば、float + in…

C言語のvoidの使い方について

C言語のvoidの使い方について調べたので、まとめておく。 関数定義におけるvoidについて 関数定義におけるvoidは、単純に「戻り値がない関数」を作る時に使うもの。 void createFunction() { 処理 } voidはmain関数に対して使うことができる。 ポインタとし…

C言語のsizeofにおける配列、ポインタ、構造体などの動きのまとめ

C言語のsizeofについて色々調べたのでまとめてみました。 sizeofとは何か? sizeofとは、型や変数などのメモリサイズを返す関数のこと。例えば、intやfloat等の型を指定した場合は「型が利用するメモリサイズ」を返し、変数やポインタ、構造体を指定した場合…

C言語のコンパイルにおけるアセンブラ→実行ファイルまでの流れをまとめてみた

備忘録として、C言語のコンパイルの流れをまとめてみた。 C言語のコンパイラの大まかな流れ 簡単なプログラムであればgcc test.cだけでコンパイルが可能だが、実際のコンパイルは以下の4つの手順を踏んでいる。 プリプロセッサでソースコードをコンパイラが…