It means you are using an inappropriate format specifier for the second argument (argument two).
In this case the supplied format specifier was supposed to be used for int (signed int) type; while the data to be formatted was of unsigned long type.
Why we get this message? the compiler wants to warn us, that an unsigned type value being displayed using format specifier dedicated for signed type may give different (or wrong) output, which leads to misunderstanding and unwanted output.
Occasionally, changes in compiler (by an upgrade) may trigger issues. What was previously considered OK (not giving warning) may be considered differently with the new version (or standard).
To avoid this warning, basically we need to make sure that each supplied format specifier matches the type of the argument that is to be formatted. That is, use x-type format specifier to format an argument of x-type, not one of y-type or z-type.
You can edit your original question to include your code link. Or if it's rather short, copy-paste a portion of the code that triggered the warning. This way the context clarity of the question is improved, given the code or a portion of it 👍
For future reference, if your question concerns a code then attach the saved code link. If your question concerns a lesson then attach lessons link. And more importantly, specify the language in the Relevant Tags section to clarify context. Follow these guides for posting a question and how to share links 👍