Написать свою CMS не имея толком навыков программирования, одна из наиболее неразумных идей, на самом деле. =) Вы не научитесь практически ничему, но ри этом у вас получится даже не велосипед, а велосипед с квадратными колёсами, и на каком языке он будет написан, если у вас вообще хватит терпения довести его до конца, будет совершенно не важно.
Если вам по какой-то причине не хватает WP, посмотрите на другие готовые решения, а если хочется более бурного развития, попробуйте написать хотя бы толковое расширение для того же WP. Это будет неплохим началом.
Чтобы познакомиться с питоном, надо начать его изучать и применять, опять же. И тогда вы сможете сделать осознанный выбор. И опять же, начинайте с основ, не ставя целью, написать свою CMS.
struct blah
) и Вам нужен один экземпляр (instance) (в Вашем случае test_blah) этого типа, к которому нужно иметь доступ с любой точки программы, то Вам нужно один раз определить этот экземпляр (больше, конечно же, не получится, ODR. Определить — написать полное имя типа, указав имя переменной в одной единице трансляции), а перед использованием объявить, предварительно указав, что переменная (экземпляр) является «внешней» (extern) по отношению к текущей единице трансляции (обычно, это отдельный .cpp файл после препроцессора).
- // blah.h
- #ifndef BLAH_H
- #define BLAH_H
- // Объявляем и определяем тип (можно только объявить, а определить в другом месте)
- struct blah
- {
- int value;
- };
- // Объявляем переменную, указав, что она определена в другом месте
- // (Поскольку в данной точке мы имеем полное определение типа,
- // можно объявить blah_test типа struct blah, а если бы определение
- // находилось в другом месте (т.е. имели бы просто struct blah; выше), то пришлось бы
- // объявлять указатель на struct blah, т.е. struct blah*)
- extern struct blah blah_test;
- #endif
- // ---------------------------------
- // blah.cpp (blah.c)
- #include "blah.h"
- // Определяем переменную
- struct blah blah_test;
- // ---------------------------------
- // main.cpp (main.c)
- // Подключая заголовочный файл, объявляем переменную,
- // которую хотим использовать.
- #include "blah.h"
- int main()
- {
- // Используем
- blah_test.value = 0;
- return 0;
- }
test_blah
— это переменная, тип данных struct blah
. Задумывалось, наверное, так:/* blah.h */
struct blah; /* урезанное описание */
/* blah.c */
#include "blah.h"
struct blah { int a, b } /* описание */
test_blah; /* и тут же объявление переменной этого типа */
/* main.c */
#include "blah.h"
/* можно работать с указателями на struct blah */