コンマが含まれるマクロ

本腰を入れて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