コンマが含まれるマクロ
本腰を入れてC言語を学ぼうかと思い始めてます。
であれば、「PHPのエクステンションとか本体のソース見ればいいんじゃね」ってことで
まずはリーディングから始めています。
C言語自体の基礎知識はあるのですが、初心者に毛が生えたようなもんですし、色々詰まります。
それはそれで楽しいんですが。。
で、今回躓いていたのが下記引数。
static void ps_files_open(ps_files *data, const char *key TSRMLS_DC)
const char *key TSRMLS_DC.... ん? あれ。コンマ無くない?
こういう何かC独特の書き方でもあるのか!?
と、C言語の引数について調べたりしたのですが。。タコでした。
TRSMLS_CC(Thread Safe Resource Manager Local Storage, Call Comma)と対になってそれぞれ定義側,呼び出し側でほかの引数に続けて,区切りのコンマ無しで記述されます。コンマを必要としないのは名前が示すように,コンマもマクロに含まれるからです。
そかー。なるほど。納得。
よくみたらdefineに書いてありました。えぇ。。
#define TSRMLS_DC> , TSRMLS_D