ブログ

ころころビルドオプションを変えるな!

久々にCygwinをアップデートしたのですが、TOPPERS/ASPカーネルのコンフィギュレータをビルドしようとすると、次のエラーが大量に出ました。

undefined reference to `__Unwind_SjLj_Unregister'

PCPにおけるASP形式タグと二文字表記

まだ、アイデアが出かけたばかりで、具体的に何に使えるのか十分に検討できていないのですが、PCP: C PreprocessorでASP形式のタグを許可する/しないの切り替えによって、コンパイル時の処理と実行時の処理を切り替えられる可能性があります。

第13回 フリースタンディング環境

フリースタンディング環境というのは、C++でいう自立処理系の環境のことです。C++の場合と同様、オペレーティングシステムの支援無しに動作する環境であり、一部のヘッダを除き、標準ライブラリは一切サポートされません。また、プログラムの開始はmainからとは限らず、処理系定義の名前と型を持つ関数から始まります。

第12回 標準Cライブラリ

いったんは連載を終えた「C++プログラマのためのC言語入門」ですが、ここまでの時点で扱い切れなかった話題を少し補足するために、連載を再開することにします。今回解説するのは、標準Cライブラリについてです。Cでは、C++の標準ライブラリのうち、当然のことながら標準Cライブラリに当たる部分しかサポートされません。しかし、標準Cライブラリの範疇でも、若干のちがいがあります。

宇宙人との接触は危険

産経ニュースに「宇宙人と接触は危険」 ホーキング博士、テレビで発言という記事が掲載されました。このニュース自体は数日前に別ルートで目にしていましたが、この機会に少し取り上げておくことにします。このニュースを最初見たとき、我が国の鳩山首相を(英政府が)相手にすることの危険性を、ホーキング氏までが指摘し始めたのかと思いましたが、どうやらそういうことではないようです。

商業高校という未知の世界

私が直接商業高校に関わるわけでも、うちの子供が商業高校に進学するわけでも、あるいは商業高校卒の従業員を雇おうというわけでもないのですが、最近、商業高校に少しずつ興味を持っています。というのも、非常勤講師をやっている専門学校には商業高校卒の生徒も少なくないからで、一体全体、商業高校というところはどんな勉強をするのかをある程度知っておかないと、いろいろ問題が出てくるからです。

本日は主権回復記念日

中学・高校でまともに教えないためか、近現代史について根本的な部分で理解できていない、あるいは誤解している人は少なくありません。先の大戦の終戦に絡む部分は、おのおののイデオロギーやらがからんでくることもあって、とくにひどいようです。

ヒアドキュメントを使う

スクリプト言語の多くはヒアドキュメントをサポートしていますが、Cの場合はヒアドキュメントを使うことはできません。ヒアドキュメントがあれば便利なことも多いのですが、Cでは、普通の文字列として記述する以外ありません。

PCPを使えば、そうした問題を解消し、Cでもヒアドキュメントが使えるようになります。以下に例を示します。

式の評価結果が指定した型かどうかを判別する

今回のマクロは、式の評価結果が整数型かどうかを判別すると似ているのですが、整数型にかぎらず、指定した型と完全に一致するかどうかを判別するためのものです。指定した型と一致しない場合はコンパイルエラーになります。なお、GCC拡張を使用していますので、GCC限定になり、移植性はありません。

式の評価結果が整数型かどうかを判別する

式の評価結果が整数型であれば何もせず、整数型でなければコンパイルエラーを発生させるマクロです。

#define assert_int(x) ((void)sizeof((x)&1))

このマクロ単体で何かができるというわけではありませんが、もう少し高機能なマクロと組み合わせることで、いろいろな用途が考えられます。

コンテンツ配信
このエントリーを含むはてなブックマーク