Bird
Raised Fist0
Cprogramming~10 mins

Using return codes - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Using return codes
Start main function
↓
Call function
↓
Function runs
↓
Function returns code
↓
Check return code
↓
End program
The program calls a function, gets a return code, then decides what to do based on that code.
Execution Sample
C
#include <stdio.h>

int checkNumber(int n) {
    if (n > 0) return 0;
    else return 1;
}

int main() {
    int result = checkNumber(-5);
    if (result == 0) printf("Positive number\n");
    else printf("Not positive\n");
    return 0;
}
This code checks if a number is positive and returns 0 if yes, 1 if no, then prints a message based on the return code.
Execution Table
StepActionFunction CalledInputReturn CodeCondition CheckedOutput
1Start mainN/AN/AN/AN/AN/A
2Call checkNumbercheckNumber-5N/AN/AN/A
3Inside checkNumbercheckNumber-5N/ACheck if -5 > 0No
4Return from checkNumbercheckNumber-51N/AN/A
5Back in mainN/AN/A1result == 0?No
6Print messageN/AN/A1N/ANot positive
7End programN/AN/AN/AN/AN/A
💡 Program ends after printing message based on return code 1 (not positive).
Variable Tracker
VariableStartAfter checkNumber callFinal
nN/A-5-5
resultN/A11
Key Moments - 3 Insights
Why does the function return 1 when the number is not positive?
Because in the execution_table row 3, the condition 'n > 0' is false, so the else branch returns 1 to indicate 'not positive'.
How does main know if the number is positive or not?
Main checks the return code stored in 'result' (row 5). If it is 0, it means positive; otherwise, not positive.
What happens if the function returns 0?
If return code is 0, main prints 'Positive number' as shown in the logic after row 5.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table at step 4, what is the return code from checkNumber?
A-5
B0
C1
DN/A
💡 Hint
Check the 'Return Code' column at step 4 in the execution_table.
At which step does main check if the return code means positive number?
AStep 2
BStep 5
CStep 3
DStep 6
💡 Hint
Look at the 'Condition Checked' column to find where 'result == 0?' is evaluated.
If checkNumber returned 0, what would main print?
APositive number
BNot positive
CNo output
DError message
💡 Hint
Refer to the output in step 6 and the condition in step 5.
Concept Snapshot
Using return codes in C:
- Functions return int codes to signal status.
- 0 usually means success or OK.
- Non-zero means error or special condition.
- Main checks return code to decide next steps.
- Use if statements to handle different codes.
Full Transcript
This example shows how a C function returns a code to indicate if a number is positive. The main function calls checkNumber with -5. Inside checkNumber, it checks if the number is greater than zero. Since -5 is not, it returns 1. Back in main, the return code is checked. Because it is 1, main prints 'Not positive'. The program ends after this. This pattern helps programs communicate success or failure between functions.

Practice

(1/5)
1. What does a return code of 0 usually mean in C functions?
easy
A. The function completed successfully
B. The function encountered an error
C. The function did not run
D. The function returned a pointer

Solution

  1. Step 1: Understand return codes meaning

    In C, a return code of 0 typically means success or no error.
  2. Step 2: Interpret the code 0

    Since 0 means success, the function completed its task without problems.
  3. Final Answer:

    The function completed successfully -> Option A
  4. Quick Check:

    Return code 0 = success [OK]
Hint: Remember: 0 means success, non-zero means error [OK]
Common Mistakes:
  • Thinking 0 means error
  • Confusing return code with function output
  • Assuming non-zero means success
2. Which of the following is the correct way to return an error code from a C function?
easy
A. return 0;
B. return 'error';
C. return -1;
D. return true;

Solution

  1. Step 1: Identify valid return types for error codes

    Return codes are integers, so returning a number like -1 is valid for error.
  2. Step 2: Check each option

    return 0; returns 0 (success), B returns a multi-char constant (invalid), C returns true (boolean, invalid in C), D returns -1 (valid error code).
  3. Final Answer:

    return -1; -> Option C
  4. Quick Check:

    Use integer codes for errors [OK]
Hint: Return integer codes; negative often means error [OK]
Common Mistakes:
  • Returning strings instead of integers
  • Using boolean values in C return codes
  • Returning 0 for errors
3. What will be the output of this C program?
#include <stdio.h>
int check(int x) {
    if (x > 0) return 0;
    else return 1;
}
int main() {
    int result = check(-5);
    printf("Return code: %d\n", result);
    return 0;
}
medium
A. Return code: 1
B. Return code: -5
C. Return code: 0
D. No output

Solution

  1. Step 1: Analyze the check function behavior

    If x > 0, it returns 0; otherwise, it returns 1.
  2. Step 2: Apply input value -5

    Since -5 is not greater than 0, the function returns 1.
  3. Final Answer:

    Return code: 1 -> Option A
  4. Quick Check:

    Input -5 <= 0, so return 1 [OK]
Hint: Check conditions carefully to find returned code [OK]
Common Mistakes:
  • Assuming negative input returns 0
  • Confusing return value with input
  • Ignoring else branch
4. Identify the error in this C function that uses return codes:
int process(int val) {
    if (val == 0)
        return 0;
    else
        return;
}
medium
A. Using 0 as success code
B. No error, code is correct
C. Function should return void
D. Missing return value in else branch

Solution

  1. Step 1: Check function return type and return statements

    The function returns int, so every return must have an int value.
  2. Step 2: Identify missing return value

    The else branch has 'return;' without a value, which is invalid for int return type.
  3. Final Answer:

    Missing return value in else branch -> Option D
  4. Quick Check:

    int functions must return int always [OK]
Hint: Every return in int function must return int value [OK]
Common Mistakes:
  • Returning nothing in non-void function
  • Confusing void and int return types
  • Ignoring compiler warnings
5. You want to write a function int saveData() that returns 0 on success, 1 if file not found, and 2 if write error. Which is the best way to handle these return codes in main()?
hard
A. Ignore the return code and always print "Success"
B. Check if return code is 0, else print error message based on code
C. Return the code from main without checking
D. Use return codes only for debugging, not in main

Solution

  1. Step 1: Understand return codes purpose

    Return codes help main know if saveData succeeded or failed and why.
  2. Step 2: Choose proper handling in main

    Main should check if return code is 0 (success), else print specific error messages for 1 or 2.
  3. Final Answer:

    Check if return code is 0, else print error message based on code -> Option B
  4. Quick Check:

    Use return codes to handle errors clearly [OK]
Hint: Check return codes to handle errors clearly [OK]
Common Mistakes:
  • Ignoring return codes in main
  • Printing success without checking
  • Using return codes only for debugging
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard