This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Auto calculation of array size

Dear all,

For some reason, I need to declare an array like that

#define STRING2_DESCRIPTOR_LENGTH 16
BYTE code product_string_descriptor[] = {
	STRING2_DESCRIPTOR_LENGTH,
	0x03,
	'U', 0x00,
	'S', 0x00,
	'B', 0x00,
	' ', 0x00,
	'H', 0x00,
	'U', 0x00,
	'B', 0x00
};
When I add characters to the array, I also need to increase STRING_DESCRIPTOR_LENGTH manually.
Do you know some way to calculate the size of the array automatically?
I know in assembly, I can do something like that
product_string_descriptor:
	DB	end - $
	DB	0x03,
	DB	'U', 0x00
	DB	'S', 0x00
	DB	'B', 0x00
	DB	' ', 0x00
	DB	'H', 0x00
	DB	'U', 0x00
	DB	'B', 0x00
end:
How about in C?

Parents
  • Hi Drew,

    Thanks for the suggestion of explicitly declare the size. But I think the compiler will not warn me if I have less initializer than the actual size. Most of the compiler will fill the rest of the array with zero. Am I right? Anyway, the compiler will still warn me if I supply more intializer than the actual size. So, I consider it as a better solution than before. Thanks again.

Reply
  • Hi Drew,

    Thanks for the suggestion of explicitly declare the size. But I think the compiler will not warn me if I have less initializer than the actual size. Most of the compiler will fill the rest of the array with zero. Am I right? Anyway, the compiler will still warn me if I supply more intializer than the actual size. So, I consider it as a better solution than before. Thanks again.

Children
No data