PHPで関数の宣言を生成する 更新日:2021年12月22日 公開日:2021年12月2日 PHPによる前処理プログラミング技術情報 こんにちは、高木です。 ここのところPHPでC言語の前処理を行う話題が続いています。今回のその一環として、PHPでC言語の関数宣言を自動生成してみることにします。 今回は例として、標準Cライブラリのfgets関数の宣言を […] 続きを読む
PHPを使って列挙定数を文字列化する 更新日:2021年12月8日 公開日:2021年12月1日 PHPによる前処理プログラミング技術情報 こんにちは、高木です。 前回まではPHPで構造体を自動生成してきました。今回は構造体ではなく列挙体を作ってみることにします。それだけでは面白みがないので、列挙定数を与えると、その名前の文字列に変換する関数も自動生成してみ […] 続きを読む
PHPで定義した構造体のメンバ一覧を取得する 更新日:2021年12月8日 公開日:2021年11月29日 PHPによる前処理プログラミング技術情報 こんにちは、高木です。 前回のように、PHPの配列を使って構造体を定義しておけば、その構造体のメンバー一覧を取得するのは簡単です。 まずは、前回作ったmake_struct関数が出力する構造体の定義から見ていきましょう。 […] 続きを読む
PHPでC言語の構造体を定義する 更新日:2021年12月8日 公開日:2021年11月28日 PHPによる前処理プログラミング技術情報 こんにちは、高木です。 前回に引き続き、PHPでC言語の前処理を行う話題です。今回は、構造体のメンバーをPHPの配列として定義しておいて、それをC言語のソースコードに変換してみようと思います。 早速、PHPのコードから見 […] 続きを読む
PHPをC言語の前処理に使う 更新日:2021年12月8日 公開日:2021年11月28日 PHPによる前処理プログラミング技術情報 こんにちは、高木です。 C言語ではプリプロセッサを使って前処理を行います。プリプロセッサは比較的単純なことならできるのですが、ちょっと凝ったことをしようとすると力不足です。たとえば、事前に配列をソートするとか、静的に二分 […] 続きを読む
名前付きの実引数が実現できるかも…… 公開日:2021年11月26日 プログラミング技術情報 こんにちは、高木です。 これまでに書いて来た「省略記号表記を用いる関数形式マクロに渡された実引数の個数を調べる」や「マクロの可変個実引数の型を強制する」では、複合リテラルを使って何ができるかを模索しています。この手のネタ […] 続きを読む
省略記号表記を用いる関数形式マクロに渡された実引数の個数を調べる 公開日:2021年11月26日 プログラミング技術情報 こんにちは、高木です。 以前、とある切っ掛けから、可変個数の実引数の個数を自動的に知る方法を思いついたので、備忘録として書き留めておくことにします。対象はC99以降のC言語で、仮引数に省略記号を用いる関数形式マクロを利用 […] 続きを読む
マクロの可変個実引数の型を強制する 公開日:2021年11月25日 プログラミング技術情報 こんにちは、高木です。 今回は、以前のサイトで貧乏録として書き留めていた内容に、少し加筆、修正して再掲載する者です。もともと単なる思いつきですので、決して過信しないようにしてください。 [crayon-673f5a8dc […] 続きを読む
日本語でプログラミングする際の表記揺れ 公開日:2021年11月24日 プログラミング技術情報 こんにちは、高木です。 ここのところずっと書き続けている母国語によるプログラミングに関する話題の続きです。いつもは「母国語で」ということで日本語に特化した話は最小限にとどめてきました。今回は、日本語にしぼった「表記揺れ」 […] 続きを読む
母国語によるプログラミングでのクラスの扱い 公開日:2021年11月23日 プログラミング技術情報 こんにちは、高木です。 前々回、前回と母国語を使ったプログラミング、具体的には識別子の命名について考えてきました。これまではどちらかというと一般論でしたので、今回は少し対象を絞って考えていくことにします。オブジェクト指向 […] 続きを読む