* strings and char * @ 2006-08-10 18:09 Michael Surette 2006-08-10 18:10 ` Sven Eschenberg ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Michael Surette @ 2006-08-10 18:09 UTC (permalink / raw) To: gcc-help It's been a while since I've written any C code, so please forgive me if this is a newbie type question. I was having a problem with a larger program when I ran into a problem. The following code snippet should work according to what I remember of C. What's wrong with it? ------------ char * color; char * r="red"; color = r; ------------ gcc -c ar.c ------------ ar.c:3: error: conflicting types for 'color' ar.c:1: error: previous declaration of 'color' was here ar.c:3: warning: initialization makes integer from pointer without a cast ar.c:3: error: initializer element is not constant ar.c:3: warning: data definition has no type or storage class ------------ gcc --version ------------ gcc (GCC) 3.4.4 Copyright (C) 2004 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 18:09 strings and char * Michael Surette @ 2006-08-10 18:10 ` Sven Eschenberg 2006-08-10 19:07 ` Bob Rossi 2006-08-13 13:50 ` Luca Masini 2 siblings, 0 replies; 8+ messages in thread From: Sven Eschenberg @ 2006-08-10 18:10 UTC (permalink / raw) To: gcc-help Hi Michael, this is not really a gcc related question, but to shorten this: color and r differ in types, that's why you are getting an error. Regards -Sven Michael Surette wrote: > It's been a while since I've written any C code, so please forgive me if > this is a newbie type question. > > I was having a problem with a larger program when I ran into a problem. The > following code snippet should work according to what I remember of C. > What's wrong with it? > > ------------ > > char * color; > char * r="red"; > color = r; > > ------------ > > gcc -c ar.c > > ------------ > > ar.c:3: error: conflicting types for 'color' > ar.c:1: error: previous declaration of 'color' was here > ar.c:3: warning: initialization makes integer from pointer without a cast > ar.c:3: error: initializer element is not constant > ar.c:3: warning: data definition has no type or storage class > > ------------ > > gcc --version > > ------------ > > gcc (GCC) 3.4.4 > Copyright (C) 2004 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 18:09 strings and char * Michael Surette 2006-08-10 18:10 ` Sven Eschenberg @ 2006-08-10 19:07 ` Bob Rossi 2006-08-10 19:12 ` Michael Surette 2006-08-13 13:50 ` Luca Masini 2 siblings, 1 reply; 8+ messages in thread From: Bob Rossi @ 2006-08-10 19:07 UTC (permalink / raw) To: Michael Surette; +Cc: gcc-help On Thu, Aug 10, 2006 at 02:00:59PM -0400, Michael Surette wrote: > It's been a while since I've written any C code, so please forgive me if > this is a newbie type question. > > I was having a problem with a larger program when I ran into a problem. The > following code snippet should work according to what I remember of C. > What's wrong with it? > > ------------ > > char * color; > char * r="red"; > color = r; Is that at the global scope? You can't make assignments in the global scope unless they are definitions as well. Try putting that code in a function scope. Bob Rossi ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 19:07 ` Bob Rossi @ 2006-08-10 19:12 ` Michael Surette 2006-08-10 19:18 ` Bob Rossi 0 siblings, 1 reply; 8+ messages in thread From: Michael Surette @ 2006-08-10 19:12 UTC (permalink / raw) To: gcc-help Bob Rossi wrote: > On Thu, Aug 10, 2006 at 02:00:59PM -0400, Michael Surette wrote: >> It's been a while since I've written any C code, so please forgive me if >> this is a newbie type question. >> >> I was having a problem with a larger program when I ran into a problem. >> The following code snippet should work according to what I remember of C. >> What's wrong with it? >> >> ------------ >> >> char * color; >> char * r="red"; >> color = r; > > Is that at the global scope? You can't make assignments in the global > scope unless they are definitions as well. Try putting that code in a > function scope. > > Bob Rossi Thanks for the quick response. That fixed it. That would be one of those many changes to the C language over the years I guess. What threw me off was that it compiled fine for my brother, who runs a Windows based compiler. As I mentioned in my original posting, I wrote that snippet because I was having a problem with a larger program, a glue program between lua and sendmail's milter interface. Perhaps you can help me with that? I have a function defined as... static sfsistat callback(SMFICTX *ctx, char *cbname, char *cbargs[]); later in the code, I call it (one of many times)... return callback(ctx, "helo", {helohost,NULL}); where... ctx is a SMFICTX * supplied by sendmail "helo" is obviously a character string helohost is a char * provided by sendmail When I try to compile I get the error message... luamilter.c:137: error: parse error before '{' token Is this another of those many changes over the years that I missed? Mike ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 19:12 ` Michael Surette @ 2006-08-10 19:18 ` Bob Rossi 2006-08-10 20:10 ` Michael Surette 2006-08-11 9:39 ` Shriramana Sharma 0 siblings, 2 replies; 8+ messages in thread From: Bob Rossi @ 2006-08-10 19:18 UTC (permalink / raw) To: Michael Surette; +Cc: gcc-help On Thu, Aug 10, 2006 at 03:07:08PM -0400, Michael Surette wrote: > Bob Rossi wrote: > > > On Thu, Aug 10, 2006 at 02:00:59PM -0400, Michael Surette wrote: > >> It's been a while since I've written any C code, so please forgive me if > >> this is a newbie type question. > >> > >> I was having a problem with a larger program when I ran into a problem. > >> The following code snippet should work according to what I remember of C. > >> What's wrong with it? > >> > >> ------------ > >> > >> char * color; > >> char * r="red"; > >> color = r; > > > > Is that at the global scope? You can't make assignments in the global > > scope unless they are definitions as well. Try putting that code in a > > function scope. > > > > Bob Rossi > > Thanks for the quick response. That fixed it. That would be one of those > many changes to the C language over the years I guess. What threw me off > was that it compiled fine for my brother, who runs a Windows based > compiler. > > As I mentioned in my original posting, I wrote that snippet because I was > having a problem with a larger program, a glue program between lua and > sendmail's milter interface. Perhaps you can help me with that? > > I have a function defined as... > > static sfsistat callback(SMFICTX *ctx, char *cbname, char *cbargs[]); > > later in the code, I call it (one of many times)... > > return callback(ctx, "helo", {helohost,NULL}); I'm just guessing, but if you do char *tmp[] = {"helohost", NULL}; and then call it like return callback(ctx, "helo", tmp); it might work. This might be off topic for the gcc mailing list. Bob Rossi ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 19:18 ` Bob Rossi @ 2006-08-10 20:10 ` Michael Surette 2006-08-11 9:39 ` Shriramana Sharma 1 sibling, 0 replies; 8+ messages in thread From: Michael Surette @ 2006-08-10 20:10 UTC (permalink / raw) To: gcc-help > > I'm just guessing, but if you do > char *tmp[] = {"helohost", NULL}; > and then call it like > return callback(ctx, "helo", tmp); > it might work. > > This might be off topic for the gcc mailing list. > > Bob Rossi ok, I try that. Thanks for the help. Mike ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 19:18 ` Bob Rossi 2006-08-10 20:10 ` Michael Surette @ 2006-08-11 9:39 ` Shriramana Sharma 1 sibling, 0 replies; 8+ messages in thread From: Shriramana Sharma @ 2006-08-11 9:39 UTC (permalink / raw) To: gcc-help On 8/11/06, Bob Rossi <bob_rossi@cox.net> wrote: > This might be off topic for the gcc mailing list. http://vger.kernel.org/vger-lists.html#linux-c-programming would be a better place for general problems with C programming. A very helpful list. [Just like this one ;)] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: strings and char * 2006-08-10 18:09 strings and char * Michael Surette 2006-08-10 18:10 ` Sven Eschenberg 2006-08-10 19:07 ` Bob Rossi @ 2006-08-13 13:50 ` Luca Masini 2 siblings, 0 replies; 8+ messages in thread From: Luca Masini @ 2006-08-13 13:50 UTC (permalink / raw) To: Michael Surette; +Cc: gcc-help Michael Surette wrote: > I was having a problem with a larger program when I ran into a problem. The > following code snippet should work according to what I remember of C. > What's wrong with it? > > ------------ > > char * color; > char * r="red"; > color = r; You cannot do that in file scope. Inside a function it works: void f( void ) { char * color; char * r = "red"; color = r; } Regards. Luca Masini ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2006-08-11 22:07 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2006-08-10 18:09 strings and char * Michael Surette 2006-08-10 18:10 ` Sven Eschenberg 2006-08-10 19:07 ` Bob Rossi 2006-08-10 19:12 ` Michael Surette 2006-08-10 19:18 ` Bob Rossi 2006-08-10 20:10 ` Michael Surette 2006-08-11 9:39 ` Shriramana Sharma 2006-08-13 13:50 ` Luca Masini
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).