Since most use cases require indexing the data directly, and the macro
implies you're retrieving data from it, may as well take the index.
If you wanted a pointer to that data, &VEC_GET(vec, index, type) works
just fine.
Easier to iterate through, O(1) amortized registering just like the
Linked List.
VEC_SIZE just makes it easier to iterate through a vector of specially
typed elements.