Во -первых, есть и другие вопросы по этому поводу. Но они, кажется, спрашивают, как работает локальная или внешняя связь. С этим вопросом я преследую другую линию мышления: < /p>
Предположим, у вас есть файл, например, Некоторый модульный тестовый файл, где у вас есть векторы указателей для тестирования функций. И вы можете запустить эти тестовые «люксы» соответственно. Теперь вы не хотите иметь все эти вещи прямо в верхней части вашего исходного файла, но дальше вниз. Например. В main () , который вы предпочитаете сверху, вы можете ссылаться на тестовые наборы, сродни run_tests (test_suite_xy) , в то время как вы хотите сохранить содержание этих тестовых комплексов в этом исходном файле. Но ... и это вопрос ... Есть ли какой -нибудь другой способ пересылать объявление локальные переменные в одном и том же исходном файле, без , делая их действительно глобальными?
#include
using TFun = bool (*) (void);
using TSuite = std::vector;
// Forward declare test suites.
FORWARD static TSuite test_suite_xy;
// ... More stuff like the above.
void run_tests(const TSuite&);
int main () {
run_tests(test_suite_xy);
// more suites to run...
return 0;
}
static bool suite_xy_fun_1();
// more static test functions...
static TSuite test_suite_xy = {
suite_xy_fun_1, // ...
};
Подробнее здесь: https://stackoverflow.com/questions/796 ... ern-static