Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6679559
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 26, 20262026-05-26T04:22:23+00:00 2026-05-26T04:22:23+00:00

What tasks, features, executions vary with compiler? I know this code is compiler-dependent- #include

  • 0

What tasks, features, executions vary with compiler? I know this code is compiler-dependent-

#include <stdio.h>
#define PRODUCT(x)(x*x)
int main()
{
int i=3,j,k;
j=PRODUCT(i++);
k=PRODUCT(++i);
printf("\n%d %d",j,k);
}

Following gives garbage in some, while fixed values in others-

#include <stdio.h>
int main()
{
int i=5,j=10;
printf("%d,%d");
}

So order of execution vary with compilers.
Are such ambiguous programs eligible to be asked in exams?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-26T04:22:24+00:00Added an answer on May 26, 2026 at 4:22 am

    If you want the full list, you’ll need to look to the standard document. In the C standard there are two types of ‘compiler-dependent’ issues defined:

    • Implementation-defined behavior: The behavior may vary from compiler to compiler, but the compiler must provide some sort of consistent behavior, and must document this behavior. An example, straight from the standard: “An example of implementation-defined behavior is the propagation of the high-order bit when a signed integer is shifted right.”. In other words, the result of -1 >> 1 may vary between compilers, but the compiler has to be consistent about it.
    • Undefined behavior: All bets are off. The moment you hit undefined behavior, anything – and I do mean anything can happen. Your code is a good example of this – you modify a single variable twice without an intervening sequence point (in violation of ISO/IEC 9899:1999 (E) §6.5’s constraint). And in the second one, you are missing parameters (undefined behavior per §7.19.6.1/2). According to a strict reading of the standard, it is perfectly justified for the compiler to summon demons through your nose in this case.

    You also need to watch out for constraint violations. Often the standard specifies things like “[main] shall be defined with a return type of int […]” (§5.1.2.2.1/1). This is equivalent to, “If main is declared with a return type other than int, the program’s behavior is undefined.” (see §4.2, where the standard explicitly endorses this interpretation)

    You should not be asked these questions on an exam; if you are, you should simply state that the behavior of the program is undefined (or implementation-defined). Note that some implementation-defined behavior has limits – eg, the value of sizeof(int) is implementation defined, but you know that sizeof(int) >= sizeof(short) && sizeof(int) <= sizeof(long) – so just having any implementation-defined behavior doesn’t mean you can’t say anything about what the program does.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

As you might know, Android's SDK features a AsyncTask class which allows for code
I keep getting tasks that are above my skill level. How can I address this without coming accross as grossly incompetent?
I am run two Async Tasks in the same block of code and the
I want to use windows 7 features like icon overlay, and thumbnail tasks but
I have a custom (code-based) workflow, deployed in WSS via features in a .wsp
I have a requirement to build features that perform certain background tasks on a
I'm struggling with understanding how Rake processes Cucumber tasks. I'm probably doing this wrong,
We have two tasks (T1 and T2) in our vxWorks embedded system that have
I have few asynchronous tasks running and I need to wait until at least
There are some tasks, especially the ones that involve deleting folders as SU, that

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.