473,624 Members | 2,275 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

calling other functions

Hi there, was just wondering whats the best way to call a function from
within another function.

say ive got
int main (int argc, char * argv[]) {
return 0;
}

and another function such as:
void getInput(char name) {
printf("Hello") ;
............... ......
}

and i wanted it, so as soon as the program starts it goes straight to the
getInput function..

i tried; in the main function:
getInput(char name);
void getInput(char name);
getInput;
getInput();

none seemed to work

Any ideas?
Thank

Nov 13 '05 #1
11 1522
In article <Ts************ ****@newsfep4-glfd.server.ntl i.net>, Dilbert wrote:
Hi there, was just wondering whats the best way to call a function from
within another function.

say ive got
int main (int argc, char * argv[]) {
return 0;
}

and another function such as:
void getInput(char name) {
printf("Hello") ;
............... ......
}

and i wanted it, so as soon as the program starts it goes straight to the
getInput function..


Your getInput() function expects a character as its argument.
Call it with a character.

#include <stdio.h>

void getInput(char name)
{
printf("Hello, got '%c'\n", name);
}

int main(void)
{
getInput('Q');
return 0;
}
--
Andreas Kähäri
Nov 13 '05 #2
"Dilbert" <Ha************ @memail.com> wrote:
i tried; in the main function:
getInput(char name);
void getInput(char name);
getInput;
getInput();

none seemed to work

Any ideas?


Yes. Get a C book. I'd recommend K&R. This really is a question at such
a basic level that you should acquaint yourself a bit more (read: at
all) with the language before trying things like newsgroups and web
searches.

Hint: function(actual argument), _not_ function(type) or
function(declar ation).

Richard
Nov 13 '05 #3

"Dilbert" <Ha************ @memail.com> wrote in message
news:Ts******** ********@newsfe p4-glfd.server.ntl i.net...
Hi there, was just wondering whats the best way to call a function from
within another function.

say ive got
int main (int argc, char * argv[]) {
return 0;
}

and another function such as:
void getInput(char name) {
printf("Hello") ;
this printf() is a function, so thats a function within a function
............... ......
}

and i wanted it, so as soon as the program starts it goes straight to the
getInput function..

i tried; in the main function:
getInput(char name);
void getInput(char name);
getInput;
getInput();

none seemed to work
getInput requires a char, now there are three things wrong here,
1) a char can only hold one character, so this should accept a char pointer
or a char array to hold a name
2) the function name does not hint what the function does, its called
getInput but doesnt actually get any input.
3) You pass a paramater (char name) and never actually use it

All in all, I suggest you get yourself a book in c (I dont recommend K&R as
your first book, but you should read it eventually), and study up a bit
more.
HTH
Allan


Any ideas?
Thank

Nov 13 '05 #4
Dilbert <Ha************ @memail.com> wrote:
void getInput(char name) {
printf("Hello") ;
Ouch! Dont use printf here. puts() would be better.
............... ......
} i tried; in the main function:
getInput(char name);
void getInput(char name);
getInput;
getInput();
How about getInput('x'); or something like this? Your function requires a
char as parameter!
Any ideas?


The C Programming Language
by Brian Kerningham and Dennis Ritchie
Flo
--
Give me about 10 seconds to think for a minute.
Florian Weingarten / Use PGP! (0x65C91285)
Nov 13 '05 #5
Florian Weingarten <fw@go.cc> wrote:
Dilbert <Ha************ @memail.com> wrote:
void getInput(char name) {
printf("Hello") ;


Ouch! Dont use printf here. puts() would be better.


Why?
--
Irrwahn
(ir*******@free net.de)
Nov 13 '05 #6
Irrwahn Grausewitz <ir*******@free net.de> wrote:
> printf("Hello") ;


Ouch! Dont use printf here. puts() would be better.


Why?


Because printf() should only be used for outputting formated strings. puts()
is for printing strings which do not need to be formated and as far as I
know, puts() is much smaller and faster, so puts() should always be used
instead of printf() if possible IMHO.
Flo
--
Give me about 10 seconds to think for a minute.
Florian Weingarten / Use PGP! (0x65C91285)
Nov 13 '05 #7

On Fri, 14 Nov 2003, Florian Weingarten wrote:

Irrwahn Grausewitz <ir*******@free net.de> wrote:
> printf("Hello") ;

Ouch! Dont use printf here. puts() would be better.


Why?


Because printf() should only be used for outputting formated strings.
puts() is for printing strings which do not need to be formated and
as far as I know, puts() is much smaller and faster, so puts() should
always be used instead of printf() if possible IMHO.


One caveat:

% cat test.c

#include <stdio.h>
int main(void)
{
printf("Hello") ;
puts("Hello");
printf("World") ;
puts("World");
return 0;
}

% gcc -o test test.c
% ./test
HelloHello
WorldWorld
%

puts(foo) actually prints foo to stdout, and then *adds a newline*!
printf(foo) will not add that newline, and neither will fputs(foo,
stdout). puts() is special that way.
MMV, anyway -- I prefer to use printf() consistently, except in
temporary debugging output where puts() is faster to type and I
don't have to manually insert the "\n".
Oh, and one printf() caveat: Remember that the '%' character is
special in printf(), but not in puts().

puts("100%");
/* is equivalent to */
fputs("100%\n", stdout);
/* is equivalent to */
printf("100%%\n ");

-Arthur
Nov 13 '05 #8
On Fri, 14 Nov 2003 21:48:53 +0100, Florian Weingarten wrote:
Irrwahn Grausewitz <ir*******@free net.de> wrote:
> printf("Hello") ;

Ouch! Dont use printf here. puts() would be better.


Why?


Because printf() should only be used for outputting formated strings. puts()
is for printing strings which do not need to be formated and as far as I
know, puts() is much smaller and faster, so puts() should always be used
instead of printf() if possible IMHO.


Tell us why we should care if puts() returns 10 nanoseconds faster than
printf().

And take a look at this:

[sheldon@wsxyz mcc]$ cat test.c
#include <stdio.h>
int main (void)
{
printf("Hello World!\n");
return 1;
}
[sheldon@wsxyz mcc]$ gcc -Wall -W -O2 -S test.c
[sheldon@wsxyz mcc]$ cat test.s
.file "test.c"
.section .rodata.str1.1, "aMS",@progbits ,1
..LC0:
.string "Hello World!"
.text
.p2align 4,,15
..globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
subl $8, %esp
andl $-16, %esp
movl $.LC0, (%esp)
call puts <-------------- Good GCC!
movl %ebp, %esp
movl $1, %eax
popl %ebp
ret
.size main, .-main
.ident "GCC: (GNU) 3.3.1"
[sheldon@wsxyz mcc]$
Nov 13 '05 #9
Florian Weingarten <fw@go.cc> wrote:
Irrwahn Grausewitz <ir*******@free net.de> wrote:
> printf("Hello") ;

Ouch! Dont use printf here. puts() would be better.


Why?


Because printf() should only be used for outputting formated strings. puts()
is for printing strings which do not need to be formated and as far as I
know, puts() is much smaller and faster, so puts() should always be used
instead of printf() if possible IMHO.


Note that printf("Hello") and puts("Hello") are not equivalent,
as puts appends a newline to the output. fputs("Hello", stdout);
would have been equivalent. However, if you printf a constant string
ending in a newline, any decent optimizing compiler will probably
insert a call to puts in the code.

Regards
--
Irrwahn
(ir*******@free net.de)
Nov 13 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
3220
by: pieter.breed | last post by:
Hi All, Is it possible to export a c# method into a dll in such a way that your "normal" C application can then call this method? To be clear: I am not asking how to use "DllImport" or PInvoke. My question is the other way around. Regards Pieter Breed
19
4240
by: Ross A. Finlayson | last post by:
Hi, I hope you can help me understand the varargs facility. Say I am programming in ISO C including stdarg.h and I declare a function as so: void log_printf(const char* logfilename, const char* formatter, ...); Then, I want to call it as so:
5
2219
by: Dave | last post by:
does calling a regular function cost any cpu time? In other words, is it faster to write the code of two functions into main(), or is it the exact same thing as calling two functions. I know its nitty gritty but its necessary for my program. thanks dave
1
1783
by: Mark Jerde | last post by:
Yesterday I posted the message below to microsoft.public.dotnet.languages.vb and microsoft.public.vc.language. The two replies are also posted. I need to write some ISO C++ functions, more information below. Is C# a better language to use than VB.NET for calling these C++ functions? If so I would appreciate some links on calling C++ from C#. Thanks! -- Mark
1
2896
by: Jesse McGrew | last post by:
Hi all, I'm trying to make a plugin DLL for a third-party application, using VC++ .NET 2003. This DLL acts as a bridge between the C++ plugin API of the application, and my actual plugin code written in C#. When the app calls my unmanaged functions, they work fine. But as soon as my unmanaged functions call managed functions (in the same source file!), the app reports an "unknown exception" error.
1
2596
by: H.B. | last post by:
Hi, I need to make a function that can display data on my Managed C++ app and be called by an unmanaged C++ DLL. Something like : void Form1::Form1_Load(System::Object * sender, System::EventArgs * e) { MyDLLInit(MyAppDisplayFunction); }
2
2815
by: Daniel Lidström | last post by:
I'm using a library called fyba. This library reads and writes files in a format called sosi. fyba uses the following code to determine if the calling process has own methods to handle errors, messages, etc: // If this parameter is NULL, // GetModuleHandle returns a handle of the file used // to create the calling process. hInstExe = GetModuleHandle( NULL ); if( hInstExe!=NULL )
18
4341
by: John Friedland | last post by:
My problem: I need to call (from C code) an arbitrary C library function, but I don't know until runtime what the function name is, how many parameters are required, and what the parameters are. I can use dlopen/whatever to convert the function name into a pointer to that function, but actually calling it, with the right number of parameters, isn't easy. As far as I can see, there are only two solutions: 1) This one is portable. If...
4
4795
by: Edwin Gomez | last post by:
I'm a C# developer and I'm new to Python. I would like to know if the concept of Asynchronous call-backs exists in Python. Basically what I mean is that I dispatch a thread and when the thread completes it invokes a method from the calling thread. Sort event driven concept with threads. Thanks. Ed Gomez
10
3246
by: sulekhasweety | last post by:
Hi, the following is the definition for calling convention ,which I have seen in a text book, can anyone give a more detailed explanation in terms of ANSI - C "the requirements that a programming system places on how a procedure is called and how data is passed between a calling program and procedures are called calling conventions"
0
8242
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8177
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8681
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
8629
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
8488
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
7170
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6112
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4183
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2611
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.