Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
05/26/10 22:46
Read: times


 
#176211 - No, the string shall fit according to the C standard
Responding to: ???'s previous message
Jan Waclawek said:
Well, strings in C are one character longer than the number of characters within the "", as there is the null character automatically appended. Thus, you shall not try to initialize an a[4] array with "WD4-", as it won't fit. The compiler is kind enough to strip the extra null as it won't fit (so the result is what you expect); but it is also kind enough to warn about it.

If Keil won't warn about this, Keil is crap.

JW

Nothing nice about it. A four character string "WD4-" do fit in a four character array.

The C standard says that the string "ABCD" may be stored as either 4 or 5 characters depending on available space.

ยง6.7.8 item 14 of the C standard says:
"An array of character type may be initialized by a character string literal, optionally
enclosed in braces. Successive characters of the character string literal (including the
terminating null character if there is room or if the array is of unknown size) initialize the
elements of the array."

List of 51 messages in thread
TopicAuthorDate
SDCC debug            01/01/70 00:00      
   version            01/01/70 00:00      
      2.9.0 #5416            01/01/70 00:00      
         humm            01/01/70 00:00      
            files            01/01/70 00:00      
               General Comments            01/01/70 00:00      
                  stating the problem            01/01/70 00:00      
               why would that be impossible?            01/01/70 00:00      
                  omf smaller than hex            01/01/70 00:00      
                     link, please            01/01/70 00:00      
                        links            01/01/70 00:00      
   played with the commandline options and ...            01/01/70 00:00      
      What do you mean by "blows in startup"?            01/01/70 00:00      
         goes to undefined memory and never reaches main            01/01/70 00:00      
            try one of these options            01/01/70 00:00      
               Thanks, It'll be a day or two            01/01/70 00:00      
                  SiLabs or not            01/01/70 00:00      
                     yes, SILabs            01/01/70 00:00      
                        breakpoint            01/01/70 00:00      
   found a cause, but ....            01/01/70 00:00      
      disassembly            01/01/70 00:00      
      not having _sdcc_external_startup            01/01/70 00:00      
      seems you feed SDCC with a Keil specific header file            01/01/70 00:00      
         false entry, sorry            01/01/70 00:00      
         reply            01/01/70 00:00      
            legal C reused by Keil            01/01/70 00:00      
               3 questions            01/01/70 00:00      
                  3 answers            01/01/70 00:00      
                     thnks for 3 answers and more stuff            01/01/70 00:00      
                        incomplete            01/01/70 00:00      
               since 'porting' to SDCC ...            01/01/70 00:00      
                  agreed!            01/01/70 00:00      
   neither works, what do I do            01/01/70 00:00      
      no problem at my place            01/01/70 00:00      
   I ma stuck on the next one            01/01/70 00:00      
      strings in C            01/01/70 00:00      
         Thanks, Jan ....            01/01/70 00:00      
            that's the kosher way            01/01/70 00:00      
         No, the string shall fit according to the C standard            01/01/70 00:00      
            indeed            01/01/70 00:00      
      bug found            01/01/70 00:00      
         read again            01/01/70 00:00      
         somehow the SDCC forum did not take my post...            01/01/70 00:00      
            sdcc.exe does return an error status            01/01/70 00:00      
               why would you think that?            01/01/70 00:00      
                  grep etc            01/01/70 00:00      
                     Unix goodies            01/01/70 00:00      
            sdcc forum post visible            01/01/70 00:00      
               what are you doing diffrently?            01/01/70 00:00      
                  DOS bat command gotcha            01/01/70 00:00      
                     Thanks Jan            01/01/70 00:00      

Back to Subject List