Giacomo Catenazzi wrote:
> Ben Collins wrote:
> > There's also:
> >
> > asm("\
> > cmd r,r\n\
> > lbl: cmd r,r\n\
> > cmd r,r\n" : spec : spec);
> >
> >
> > Or something similar (the trailing "\" added for continuation). Probably
> > the easiest way to patch existing asm.
>
> not ANSI C. The trailing \ is understood only in marco definitions
> (and outside strings)
gcc begs to differ
/* z.c */
#include <stdio.h>
int main(void)
{
printf("This is a string\n\
with continuation characters\n");
return 0;
}
$ gcc -Wall -pedantic -ansi z.c -o z
[silence]
Remove the \ and you get
z.c:5: warning: string constant runs past end of line
z.c: In function `main':
z.c:5: warning: ANSI C forbids newline in string constant
You are correct in thinking it is something to do with pre-processor -
it deals with these continuation lines eg,
$ gcc -E -Wall -pedantic -ansi z.c
Gives
[snip stdio etc]
int main(void)
{
printf("This is a string\nwith continuation characters\n");
return 0;
}
-- Nick Craig-Wood ncw@axis.demon.co.uk - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Fri Nov 23 2001 - 21:00:29 EST