In C, I'd like to make a function or a macro that looks like this:

```
void Log(char* what, ...) 

```

where the ... must be key-value pairs of const char\*'s. I would really like code that doesn't follow this to blow up at compile time. I tried looking for an \_\_attribute((..)) directive that did this, to no avail. Any ideas?