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

Array as Argument

I want to send control codes to a printer
they look like this :

	unsigned char cntrl_codes[6] = { 0x0d, 0x14, 0x1b, 0x4c, 0x0d, 0x0d};

I have made a function to send this array to serial port :
//this function takes two arguments
//    1)the array
//    2)time delay between successive codes

void print(unsigned char* c,unsigned char del)
{				
	int x,y;		
	y=strlen(c);//y++;      
	for(x=0;x<y;x++)
	{

		putchar(c[x]);
		delay(del);
		
	}
}

There has to be a more graceful way to do this !!!

Parents
  • Does the strlen call give the result you want? There is no trailing zero in the initializer of the array. You have to pass the size of the array as an extra argument to the function.
    Besides that, I can't see why this function is ungraceful. You can declare it like this:

    void print(unsigned char c[],unsigned char del)
    
    which may look better but doesn't make any difference.

    Regards,
    - Mike

Reply
  • Does the strlen call give the result you want? There is no trailing zero in the initializer of the array. You have to pass the size of the array as an extra argument to the function.
    Besides that, I can't see why this function is ungraceful. You can declare it like this:

    void print(unsigned char c[],unsigned char del)
    
    which may look better but doesn't make any difference.

    Regards,
    - Mike

Children