Re: [xml] Error in the Tutorial
- From: Raymond Wiker <Raymond Wiker fast no>
- To: xml gnome org
- Subject: Re: [xml] Error in the Tutorial
- Date: Thu, 27 May 2004 13:17:16 +0200
Igor Zlatkovic writes:
On 27.05.2004 02:54, John Fleck wrote:
Thanks, I'll fix that.
No, John, leave it. The code is working and I have no idea why would a
compiler give an error here. If you want to fix it, then better do a
xmlChar *xpath = (xmlChar*) "//keyword";
Duplicating the string here is misleading.
By the way, I cannot reproduce the error with any of the three compilers
I have here:
Microsoft's Visual C/C++ says it isn't a big deal:
C:\Temp>cl -Ic:\opt\fsw\include -W4 -c xpathex.c
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077
for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.
test.c
test.c(37) : warning C4057: 'initializing' : 'xmlChar *' differs
in indirection to slightly different base type from 'char [10]'
C:\Temp>
GNU C compiler doesn't say a thing. It just compiles.
C:\Temp>gcc -Ic:\opt\fsw\include -Wall -c xpathex.c
C:\Temp>
Intel's C/C++ compiler is very conversational, but it doesn't mention
our line 37:
C:\Temp>icl -Ic:\opt\fsw\include -W4 -c xpathex.c
Intel(R) C++ Compiler for 32-bit applications, Version 8.0
Build 20031017Z
Copyright (C) 1985-2003 Intel Corporation. All rights reserved.
test.c
test.c(5): remark #1418: external definition with no prior declaration
getdoc (char *docname) {
^
test.c(18): remark #1418: external definition with no prior
declaration getnodeset (xmlDocPtr doc, xmlChar *xpath){
^
test.c(55): remark #181: argument is incompatible with corresponding
format string conversion printf("keyword: %s\n", keyword);
^
C:\Temp>
Note that all three compilers produced a valid object file. Also note
that in all three cases I had to turn all possible warnings on in order
to get any message on the screen. Finally note that only one of the
three had mentioned the line 37 at all.
Concusion: Don't trust t-onliners. They lie. :-)
I think you'd need a combination of high(ish) warning level
and compiler/system that treats chars as signed to get problems. In
any case, the correct solution is (as you say) to cast to xmlChar *. I
have definitely had to add such casts to placate the compiler on one
or more platforms.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]