Skip to main content
GameDev.net gamedev.net
🔒 Locked

Copy/paste fail

Started by aregee Aug 23, 2014 at 12:03 AM 4 replies 3.4k views
Original Post
aregee
aregee
I am not sure if this is the right place, but...
This is a tale of copy and paste snafus. (Not sure if this is the right term, but it sounds fancy...)
I was making CRC checking in my FLAC player, and I was copying a minor part of the CRC-8 part to make the CRC-16 part. In the debugging I observed that all the generated values were in the range 0..255, but it was supposed to be 16 bit.
What I did was:
Implementation:

- (uint16_t)CRC16 {
    return mCRC16;
}
Definition:

- (uint8_t)CRC16;
Notice the mismatching return values of the definition and implementation.
What I didn't notice was the compiler complaining with a WARNING (not an error) that:
crc.png
So even though the method definition didn't match, the runtime was happy to use the "substitute" instead, providing me with wrong values.
Sik_the_hedgehog
Sik_the_hedgehog

Yeah, that happens.

...what kind of function declaration syntax is that though? o_O

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.
Zaoshi Kaba
Zaoshi Kaba




...what kind of function declaration syntax is that though? o_O

Isn't that Objective-C?

aregee
aregee

...what kind of function declaration syntax is that though? o_O

Isn't that Objective-C?

Yes, it is Objective-C. I originally mentioned that, but my browser crashed in the middle of editing, so I had to rewrite and forgot to mention that again.

Sik_the_hedgehog
Sik_the_hedgehog

Proof that I know nothing about Objective C >.<

Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.
aregee
aregee

Proof that I know nothing about Objective C >.<

Lol, my little mistake taught me something new about Obj-C too biggrin.png I know those things are resolved at runtime, and that opens for a lot of weirds stuff, but I didn't know that the definition would override the implementation.

Edit: And it was hard to start with Objective C with a C/C++ background. If you don't come up with good names, things may look like this:


- (void)myMethod:(NSString)theString withSomething:(NSInteger)withSomething {
}

Calling this thing:


[self myMethod:@"weird" withSomething:42];

Yes, it is weird, and it still feels weird and unnatural even after 2-3 years of Obj-C-ing... And you are sending messages, not calling methods. That is a whole world of difference, since sending messages means that everything is determined at run time. Calling methods are determined at compile time.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.