bool (*FuncPtr)() FuncPtr = A; FuncPtr();
Если вы хотите вызвать одну из этих функций условно, вам следует рассмотреть возможность использования массива указателей на функции . В этом случае у вас будет 3 элемента, указывающих на A, B и C, и вы вызовете один из них в зависимости от индекса массива, например funcArray0 для A.
Я настоятельно рекомендую не создавать базы данных с такими именами. Но если вам это абсолютно необходимо, вот ограничения :
Чтобы создать базу данных, вы можете сделать следующее:
mysql> create database `really@strange*database$name`;
Просто: не надо.
Вы можете избежать экзотических имен таблиц, используя обратную кавычку в mysql, но я не знаю, можете ли вы использовать ничего внутри обратных кавычек. Это доставит немало хлопот в течение оставшейся части жизненного цикла вашего программного обеспечения.
Я бы предпочел создать другую таблицу для хранения этих экзотических имен.
-- Example:
CREATE TABLE _DatabaseMetadata (
databaseName VARCHAR(255),
exoticName VARCHAR(255)
) DEFAULT CHARSET=utf8;