/******************************************************************
 int_wrap.c - k4thryn columbine

 demonstration of limitations on integer data types.
 this program has options for signed or unsigned arguments, so that 
 the differences in behavior can be seen.

 good options (on compilers w/ a 2-bit short) are 

	-s 32767
	-u 65535
*******************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void usage(char *);

int main(int argc, char *argv[]){

	unsigned short unsigned_number;
	short signed_number;


	if(argc !=  3){
		usage(argv[0]);
		return 1;
	}

	if(strncmp(argv[1], "-u", 2) == 0){
		printf("size in bytes: %d\narg: %s\n",sizeof(unsigned_number),argv[2]);
		sscanf(argv[2],"%hu",&unsigned_number);
		printf("\nunsigned value: %hu\n", unsigned_number);
		printf("value + 1: %hu\n",++unsigned_number);
	}
	else if(strncmp(argv[1], "-s", 2) == 0){
		printf("size in bytes: %d\narg: %s\n",sizeof(signed_number),argv[2]);
		sscanf(argv[2],"%hd",&signed_number);
		printf("\nsigned value: %hd\n", signed_number);
		printf("value + 1: %hd\n", ++signed_number);
	}
	else{
		usage(argv[0]);
		return 1;
	}

	return 0;
}

void usage(char* bin){
	fprintf(stderr,"usage:\t%s -[su] N\n",bin);
	fprintf(stderr,"\twhere -s indicates signed, -u indicates unsigned, and N is an integer\n
	return;



Top 5 Free Networking Tools

Bookmark int_wrap.c

Latest Blog Posts


English English GermanGerman SpanishSpanish FrenchFrench ItalianItalian PortuguesePortuguese RussianRussian DutchDutch
GreekGreek HindiHindi JapaneseJapanese KoreanKorean ChineseChinese Chinese (Simplified)Chinese (Simplified) ArabicArabic

Copyright 2009 Tech-FAQ. All rights reserved. Privacy Policy.