当创建预期输入C函数,我倾向于做这样的:有没有办法预先定义C函数参数的预期长度?
function(unsigned char *bytes, unsigned int bytelen) { …
现在,我有一个项目我编码,其中这样的功能期待的正是256的无符号的特定bytelen
功能字符。
所以,我想这似乎工作如下:
function(unsigned char bytes[256]) { …
然而,测试一个(使用GCC),它不会在编译的时候,当我经过1024个无符号字符的功能失效。将printf
添加到该函数中,它甚至可以毫无问题地打印这些1024个无符号字符。
这不是我所期望的或意图的,因为 - 最终 - 功能表现得好像我会用function(unsigned char *bytes) { …
。
当然,我可以进行通常的健全性检查,看看是否通过了期望的长度,如果输入不完全是256个字符,程序性失败。但是没有一种方法可以在函数的参数中明确地预定义该限制吗? (还是我做错了。如果,我将不胜感激,我错在何处抬头?)
可以传递具有'无符号字符字节[256]'字段的结构的地址。 – chux