You can do the HKEY trick on vararg macros:
cat <<END > x.c
#define strncmp(a,b,c) [a][b][c]
#define _strncmp(...) strcmp(__VA_ARGS__)
#define HKEY(a) a, (sizeof(a)-1)
_strncmp("something", HKEY("__"));
x.c
gcc -E x.c
# 1 "x.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "x.c"
["something"]["__"][(sizeof("__")-1)];
But on my system strncmp isn't a vararg macro.