Skip to main content

"No previous prototype for function” warning



i use shareKit to myself program .





but in the FBConnectGlobal, there are some warning,







NSMutableArray* FBCreateNonRetainingArray() {

CFArrayCallBacks callbacks = kCFTypeArrayCallBacks;

callbacks.retain = RetainNoOp;

callbacks.release = ReleaseNoOp;

return (NSMutableArray*)CFArrayCreateMutable(nil, 0, &callbacks);

}







like this method, it warning:"No previous prototype for function FBCreateNonRetainingArray"


Comments

  1. To clarify Eric Dchao's answer above, someone at facebook apparently didn't put a "static" in front of that BOOL?

    Anyways, changing from this

    BOOL FBIsDeviceIPad() {
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return YES;
    }
    #endif
    return NO;
    }


    to this

    static BOOL FBIsDeviceIPad() {
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    return YES;
    }
    #endif
    return NO;
    }


    fixed it for me.

    ReplyDelete
  2. In Xcode 4, go to your project's Build Settings. Search for "prototype". There should be an option called "Missing Function Prototypes"; disable it.

    via here

    ReplyDelete
  3. According to c standard, declaring the prototype as

    NSMutableArray* FBCreateNonRetainingArray(void);
    // ---------------> ^^^^
    // Yes, with the void as the parameter


    solves the issue.

    ReplyDelete
  4. Is it a global function? Add "static" if it is only used in the current file.

    The possible reason is as below:

    no previous prototype for `foo'

    This means that GCC found a global function definition without seeing a prototype for the function. If a function is used in more than one file, there should be a prototype for it in a header file somewhere. This keeps functions and their uses from getting out of sync

    If the function is only used in this file, make it static to guarantee that it'll never be used outside this file and document that it's a local function

    ReplyDelete
  5. @daveswen - You got it. That's the way to do it, if there are arguments, just declare the function in the .h file if there aren't any arguments in the method signature, just out void inside the argument block and declare it in the header again.

    ReplyDelete

Post a Comment

Popular posts from this blog

Why is this Javascript much *slower* than its jQuery equivalent?

I have a HTML list of about 500 items and a "filter" box above it. I started by using jQuery to filter the list when I typed a letter (timing code added later): $('#filter').keyup( function() { var jqStart = (new Date).getTime(); var search = $(this).val().toLowerCase(); var $list = $('ul.ablist > li'); $list.each( function() { if ( $(this).text().toLowerCase().indexOf(search) === -1 ) $(this).hide(); else $(this).show(); } ); console.log('Time: ' + ((new Date).getTime() - jqStart)); } ); However, there was a couple of seconds delay after typing each letter (particularly the first letter). So I thought it may be slightly quicker if I used plain Javascript (I read recently that jQuery's each function is particularly slow). Here's my JS equivalent: document.getElementById('filter').addEventListener( 'keyup', function () { var jsStart = (new Date).getTime()...

Is it possible to have IF statement in an Echo statement in PHP

Thanks in advance. I did look at the other questions/answers that were similar and didn't find exactly what I was looking for. I'm trying to do this, am I on the right path? echo " <div id='tabs-".$match."'> <textarea id='".$match."' name='".$match."'>". if ($COLUMN_NAME === $match) { echo $FIELD_WITH_COLUMN_NAME; } else { } ."</textarea> <script type='text/javascript'> CKEDITOR.replace( '".$match."' ); </script> </div>"; I am getting the following error message in the browser: Parse error: syntax error, unexpected T_IF Please let me know if this is the right way to go about nesting an IF statement inside an echo. Thank you.