Question
2.3 Observeandcomparewiththeoutputsofthefunctionsandthe macros. Do the functions and macros generate the same results? Submit your short answer and the screenshots of the test run and label
2.3 Observeandcomparewiththeoutputsofthefunctionsandthe macros. Do the functions and macros generate the same results? Submit your short answer and the screenshots of the test run and label the file hw02q2.pdf [2 points]
Programming Portion:
3. You are given a file named hw02q3.c. All instructions are given in the form of comments in the file. You are to again run the file in both Visual Studio and in GCC and observe the outputs and make changes as requested. Please read all instructions very carefully, then complete and submit the updated file as hw02q3.c. [25 points]
THE FILE -
#include#pragma warning(disable : 4996) // CSE 240 Fall 2016 Homework 2 Question 3 (25 points) // Note: You may notice some warnings for variables when you compile in GCC, that is okay. #define macro_1(x) ((x > 0) ? x : 0) #define macro_2(a, b) (3*a - 3*b*b + 4*a * b - a*b * 10) int function_1(int a, int b) { return (3*a - 3*b*b + 4*a * b - a*b * 10); } // Part 1: // It appears that the result of macro_1 should be 5, why is the result 6? Correct the error. (5 points) void part1(int x) { int m = x, result; result = macro_1(++m); printf("macro_1(%d) = %d ", (++x), result); // Why did this error occur? Please provide the answer in your own words below following "Explanation: " printf("Explanation: __________________________________________________________________ "); // (5 points) } // Part 2: // Run this program in Visual Studio and then again in GCC. Take note of the output values for function_1(x,y) and macro_2(x,y). void part2(int x, int y) { int i, j, s, t; s = i = x; // initialize variables with value from x t = j = y; // initialize variables with value from y printf("function_1(x, y) = %d macro_2(x, y) = %d ", function_1(++i, ++j), macro_2(++s, ++t)); // Replace the 4 '__' spaces below with the actual output observed when running the code in VS and GCC. printf("In VS : the result of function_1(x, y) = __ and macro_2(x, y) = __ "); // (5 points) printf("In GCC: the result of function_1(x, y) = __ and macro_2(x, y) = __ "); // (5 points) // Explain why Visual Studio and GCC programming environments could possibly produce a different value for the same program and for the same input. printf("Explanation: __________________________________________________________________ "); // (5 points) } // Do not edit any of the following code int main() { int x = 4, y = 5; printf("Part 1: "); part1(x); printf("Part 2: "); part2(x, y); return 0; }
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started