Я пытаюсь найти способ сделать структуру для хранения динамического массива, который может работать с любым типом данных (включая определенные пользователем типы данных), до сих пор это то, что я придумал.
#define Vector(DATATYPE) struct { DATATYPE* data; size_t size; size_t used; }
typedef Vector(int) int_Vector;
int main(int argc, char* argv[]){
int_Vector vec;
return 0;
}
Пока это работает, мне было интересно, это хорошая практика? Должен ли я делать что-то подобное или есть лучший метод? Также есть способ реализовать это без части typedef Vector(int) int_vector
. В основном способ, который позволит мне использовать массив так же, как С++ использует шаблоны, где он будет выглядеть примерно так:
#define Vector(DATATYPE) struct { DATATYPE* data; size_t size; size_t used; }
int main(int argc, char* argv[]){
Vector(int) vec;
return 0;
}
В основном, чтобы избежать так много typedefs и иметь все под одним именем.