BaN (19.10.2011 19:10, просмотров: 152) ответил fk0 на Показываю:
Насчет того, что временные буферы лучше размещать в куче - принял к сведению. Вот с этим не до конца понятно:
n=TXBUF_SIZE, i=0;
while (n)
{
int r;
r=write(uart_fd, &tx_buf[r], n);
if (r<0) abort();
n-=r, i+=r;
}
Здесь, получается, отправляется полностью весь буфер размером TXBUF_SIZE, даже если он не до конца бул заполнен? И для чего используется переменная i не очень понятно. А нельзя сделать, чтобы отправлялось именно столько байт, сколько записалось в буфер, т.е.:
while (i)
{
int r;
r=write(uart_fd, &tx_buf[r], i);
if (r<0) abort();
i-=r;
}
Или тут какая-то хитрость еще есть?
И еще, по поводу комментариев вида: /* ... */. Одно время пытался перейти на такой вид комментариев, но при отладке это очень мешает, когда нужно закомментировать какой-то кусок кода, а там вот такой комментарий стоит и такие комментарии не поддерживают вложенность, из-за чего приходилось вырезать куски кода, что было неудобно. После этого перешел обратно на //. Или все-таки можно как-то организовать вложенность таких комментариев?