Table definitions should be in data_structures.h instead of data_structures.c, otherwise other C files who include data_structures.h as it is today wont be able to access struct fields:
int main() {
printf("%s", opcodes_table[0].opcode);
return 0;
}
/home/dafna/mmn/mmn14/c-assembler/main.c:4: undefined reference to `opcodes_table'