Q:

stray '\222' in program

new to C but I am having the following error when I run this: stray '\222' in program
unsigned long *new_intel_stack(unsigned long *sp, lwpfun func, void *arg)
{
    unsigned long *ebp;  

    push(sp,arg); /* argument */
    push(sp,lwp_exit); /* for lwp return purposes */
    push(sp,func); /* function's return address */
    push(sp,0x1abcdef1); /* bogus "saved" base pointer */
    ebp=sp;   /* remember sp from this point for later */
    push(sp,0x6c6f7453); /* push initial eax, ebx, ecx, edx, esi and edi */
    push(sp,0x66206e65); 
    push(sp,0x206d6f72); 
    push(sp,0x746e6957);
    push(sp,0x32207265);
    push(sp,0x21363030);
    push(sp,ebp);  /* push initial edp */

    return sp;
}

A:

That error means you have a stray non-ASCII character somewhere in your source file.  What you've pasted here is fine.  You might need to use the 'show whitespace' option in your editor or look at the file in a hex editor to find the stray byte and delete it.
It could also be that you're doing something funny with your objects and the compiler thinks they're source files - what commands are you using to build your application?

A:

The most common cause for this type of error is writing code in an environment such as Microsoft Word that autocorrects to add fancy quotes and fancy apostrophes, and then copy-pasting into a source file. Open your program in a hex editor such as Frhed and look for any byte value not in the range 00-7F. You may also be reversing the inputs and outputs in your command line invoking the compiler.

