Sponsored Content
Top Forums Programming Some questions regarding old if.c Post 302930272 by achenle on Thursday 1st of January 2015 12:35:50 PM
Old 01-01-2015
The source code is old K&R C, without function declarations.

Don't write code like that, and don't ever modify old K&R C by adding function declarations - unless you like getting into the intricacies and implications of C variable promotion rules, and how they may have changed over the years.

Original K&R C just took all arguments to a function, promoted them so they'd all be the same size, and stuffed them on the stack.

I think, if arguments aren't declared after the first function definition line:
Code:
main(argc, argv) <--defintion
char *argv[];  <-- argument declaration
{
    ....

then the argument implicitly defaults to "int".

Basically, in K&R C all functions are called as variable argument functions with every argument promoted to the same size, and the arguments aren't type-checked. Ever. And argument declarations in the function definitions only tell the function how to interpret the data in the variable passed - whatever that value may be, with, again, no type checking.

A "declaration" is code that tells the compiler what something is - think of it as a customs declaration for a bottle of booze - you're telling customs that you have a bottle of booze somewhere in your luggage, and what it is. It's not the bottle itself.

A "definition" is code that IS the function or variable. It's the bottle itself.

K&R C has pretty much no declarations. No one knows what anything else is. Try making drinks without knowing in advance what's in every bottle of booze...

Last edited by achenle; 01-01-2015 at 01:47 PM..
This User Gave Thanks to achenle For This Post:
 

8 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

i got some questions :)

Hi! Im new to all this but the computer club im in has unix i think. now my questions. 1.is it NTFS i need to partion the harddrive with to be able to use unix? 2.Unix and Linux whats the diffrense?yes im a noob got no idea been using crap windows for ages and hate it. 3.I got a win98... (2 Replies)
Discussion started by: Pierre
2 Replies

2. Programming

C questions

What does "extern" do? ex. extern int x; and another question, what about using static in functions? like: static void foo(), why? (2 Replies)
Discussion started by: Esaia
2 Replies

3. Solaris

2 Questions

Hello Everbody I hope you can give me a hand, I have some questions The first one itīs about some message that I donīt know what means, I was looking about it. but nothing. This is the message rsh: connection from bad port bsd-gw: Error reading from connection: Bad file number And my... (4 Replies)
Discussion started by: lo-lp-kl
4 Replies

4. UNIX for Dummies Questions & Answers

Just a few questions.

Hi everyone im new to this forums, i just wanted to get started by asking a few question(Im a Unix newbie) 1. How do i sort a file called "dirr" in a ascending order on the 3rd column 2. what does alias on=who do Thanks in advance!!! (1 Reply)
Discussion started by: Da Paper
1 Replies

5. Programming

two questions

hey all, I have question when am writing simple shell... in the child am calling execvp, i want the parent to know when execvp returns - 1. how can i let the parent know the result of execvp thanks in advance (9 Replies)
Discussion started by: joey
9 Replies

6. Homework & Coursework Questions

Print questions from a questions folder in a sequential order

1.) I am to write scripts that will be phasetest folder in the home directory. 2.) The folder should have a set-up,phase and display files I have written a small script which i used to check for the existing users and their password. What I need help with: I have a set of questions in a... (19 Replies)
Discussion started by: moraks007
19 Replies

7. UNIX for Dummies Questions & Answers

Just had a few questions

1) The lpr and sort utilities accept input either from a file named on the command line or from standard input. a)Name two other utilities that function in a similar manner. b)Name a utility that accepts its input only from standard input. 2) Explain the following error message. What... (10 Replies)
Discussion started by: youngyou
10 Replies

8. UNIX for Dummies Questions & Answers

Vi questions

Hello, I would like to know how we can highlight/select a section of a file in vi and delete that section if we don't want to use the dd command to delete one line at at time. There is one where we don't want to delete the whole line , but up to a certain word. (2 Replies)
Discussion started by: Pouchie1
2 Replies
KC(1)							      General Commands Manual							     KC(1)

NAME
kc - generate C code from Kimwitu input SYNOPSIS
kc [ file.k ... ] kc --version DESCRIPTION
kc reads the abstract syntax definition, function definitions, rewrite rules and unparse rules from the files given on the command line, or from the standard input if no file arguments were given, and generates for each file.k input file a pair of file.c and a file.h files that contain the translation of the functions defined in the corresponding file.k, in addition to the files that are always generated: csgiok.[ch], rk.[ch] and unpk.[ch] files, that contain respectively the CSGIO-, the rewrite- and the unparse-functions, and the k.c and k.h files that contain the grammar tables and the remaining `default' functions. If no command line file arguments are given, the translation of the user-defined functions will be generated in stdin.[ch] files. kc does not unnecessarily overwrite a file: if a file would be overwritten with its own (identical) contents, it will not be touched. This makes it easy to write an efficient Makefile. OPTIONS
--version print the version number of kc and exit (this option is not available in kc versions older than V3_9P3) GENERATED FILES
k.[ch] the grammar and default functions rk.[ch] the rewrite view declarations and rewrite functions csgiok.[ch] the CSGIO functions unpk.[ch] the unparse view declarations and unparsing functions file.[ch] translation of user-provided Kimwitu functions. stdin.[ch] translation of user-provided Kimwitu functions if no command line file arguments were given. DIAGNOSTICS
If an error is encountered in the Kimwitu input, an apropriate error message will be written on standard error, code generation will be suppressed and a non-zero exit value will be returned. The error messages should be self-explanatory. AUTHOR
Axel Belinfante, University of Twente, the Netherlands. CONTACT
By Email: <kimwitu@cs.utwente.nl> VERSION
This manual page documents kc V3_* and newer. May 13, 1996 KC(1)
All times are GMT -4. The time now is 03:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy