08-20-2008
The only other point - char to int promotion. For example, when a char is passed to a function by value, it actually is promoted to an int behind the scenes. There are other instances during arithmetic and boolean operations when a char is promoted to an int, then truncated in the result. See the C99 standards document for more information.
Or see the prototypes in ctype.h for any of the character functions - you'll note the arguments are int.
This means that char may undergo type change behind the scenes - so I'm not sure what you are gaining - if anything - other than as shamrock points out, some generality.
Being careful with const values and writing functions as true 'black boxes' that return nothing but copies of arguments, changing no argument, give rise to idempotent functions. These are FAR easier for the compiler to optimize. Stdc lib example: strlen(). Takes a const char * argument returns size_t.
8 More Discussions You Might Find Interesting
1. Programming
Hi all
My question is related to following sample code which tries to change consant value by pointers.(I know it is wrong practice but i am surprised by mis-behaviour)
The code:
#include <stdio.h>
int main()
{
const int x = 10;
int *y;
const int * const z = &x;
y = (int *)&x;... (2 Replies)
Discussion started by: Shobhit
2 Replies
2. Shell Programming and Scripting
is it possible to use eval to create constants in perl? i cannot seem to get anything to work, and my searches are turning up little to nothing. an example of what i am trying to do is this:
2 arrays:
array 1: 'FOOD','NUMBER','OS'
array 2: 'pizza','two','unix'
loop through the arrays and... (5 Replies)
Discussion started by: effigy
5 Replies
3. Shell Programming and Scripting
currently it has the following:
bdumpN=`ll /home/apps/oracle/admin/DBprod/bdump/DBprod_j* | grep "$Cdate" | wc -l`
If I pass the DBname, I would not have to hardcode it in the script...
I can capture the database name by adding the following:
DBname=$1
The problem is, I have been unable... (2 Replies)
Discussion started by: mr_manny
2 Replies
4. UNIX for Dummies Questions & Answers
Hi
Can any one help me out ?
I am trying to send an autogenerated mail with an attachment to bulk of users using 'MAILX' and 'UNENCODE' . I have used it as follows
X " ( cat /sastemp/body.txt; uuencode Test.xls.gz Test.xls.gz ) | mailx -s 'Testing' ' abcd@yahoo.com , efgh@gmail.com ' "
... (9 Replies)
Discussion started by: manas6
9 Replies
5. UNIX for Dummies Questions & Answers
Hello there,
I'd like to define a variable b equal to 0.5/a where a=0.001, so I wrote something like that:
a=0.001;
let 'b=0.5/$a';
but it doesn't work... maybe because the variable a has a real value???
Any help will be appreciated!!!:D (1 Reply)
Discussion started by: Giordano Bruno
1 Replies
6. Programming
Hello,
I'm trying to write a method which will return the extension of a file given the file's name, e.g. test.txt should return txt. I'm using C so am limited to char pointers and arrays. Here is the code as I have it:
char* getext(char *file)
{
char *extension;
int i, j;... (5 Replies)
Discussion started by: pallak7
5 Replies
7. Programming
Compiling xpp (The X Printing Panel) on SL6 (RHEL6 essentially):
xpp.cxx: In constructor ‘printFiles::printFiles(int, char**, int&)’:
xpp.cxx:200: error: invalid conversion from ‘const char*’ to ‘char*’
The same error with all c++ constructors - gcc 4.4.4.
If anyone can throw any light on... (8 Replies)
Discussion started by: GSO
8 Replies
8. Web Development
Hi,
I would like to read content from a https site.
I have decided to use LWP module in perl. but it throwed 401 Authorization required error.
i dont want to hard code the password in my perl code. Is there any way to achieve the authentication without hardcoding the password.
Thanks,... (1 Reply)
Discussion started by: pandeesh
1 Replies
LEARN ABOUT FREEBSD
string
STRING(3) BSD Library Functions Manual STRING(3)
NAME
stpcpy, strcat, strncat, strchr, strrchr, strcmp, strncmp, strcasecmp, strncasecmp, strcpy, strncpy, strerror, strlen, strpbrk, strsep,
strspn, strcspn, strstr, strtok, index, rindex -- string specific functions
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <string.h>
char *
stpcpy(char *dst, const char *src);
char *
strcat(char *s, const char * append);
char *
strncat(char *s, const char *append, size_t count);
char *
strchr(const char *s, int c);
char *
strrchr(const char *s, int c);
int
strcmp(const char *s1, const char *s2);
int
strncmp(const char *s1, const char *s2, size_t count);
int
strcasecmp(const char *s1, const char *s2);
int
strncasecmp(const char *s1, const char *s2, size_t count);
char *
strcpy(char *dst, const char *src);
char *
strncpy(char *dst, const char *src, size_t count);
char *
strerror(int errno);
size_t
strlen(const char *s);
char *
strpbrk(const char *s, const char *charset);
char *
strsep(char **stringp, const char *delim);
size_t
strspn(const char *s, const char *charset);
size_t
strcspn(const char *s, const char *charset);
char *
strstr(const char *big, const char *little);
char *
strtok(char *s, const char *delim);
char *
index(const char *s, int c);
char *
rindex(const char *s, int c);
DESCRIPTION
The string functions manipulate strings terminated by a null byte.
See the specific manual pages for more information. For manipulating variable length generic objects as byte strings (without the null byte
check), see bstring(3).
Except as noted in their specific manual pages, the string functions do not test the destination for size limitations.
SEE ALSO
bstring(3), index(3), rindex(3), stpcpy(3), strcasecmp(3), strcat(3), strchr(3), strcmp(3), strcpy(3), strcspn(3), strerror(3), strlen(3),
strpbrk(3), strrchr(3), strsep(3), strspn(3), strstr(3), strtok(3)
STANDARDS
The strcat(), strncat(), strchr(), strrchr(), strcmp(), strncmp(), strcpy(), strncpy(), strerror(), strlen(), strpbrk(), strspn(), strcspn(),
strstr(), and strtok() functions conform to ISO/IEC 9899:1990 (``ISO C90'').
BSD
December 11, 1993 BSD