difficult problem with function declaration


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers difficult problem with function declaration
# 1  
Old 12-21-2010
difficult problem with function declaration

Hello,
I have a problem with the declaration of a function.
This is how I declare the function :

c:63: void foo(threadpool *tp,void (*func)(void*), (void*)arg);

Inside main, I call it like this:

main(){
..........
threadpool y;
c:104: foo(y,foo2,(void*)x);

}

and here is the foo2,and foo:
c:109:void foo(threadpool *tp,void (*func)(void*), (void*)arg){.........}
c:110: void * foo2(void *arg) {......}

gcc gives me those things:

c:63: error: expected declaration specifiers or ‘...’ before ‘(’ token
c:104: warning: passing argument 2 of ‘foo’ from incompatible pointer type
c:63: note: expected ‘void (*)(void *)’ but argument is of type ‘void * (*)(void *)’
c:104: error: too many arguments to function ‘foo’
c:110: error: expected declaration specifiers or ‘...’ before ‘(’ token
c:110: error: expected identifier or ‘(’ before ‘{’ token


I dont know what the problem is,even if I tried a lot of things.Please help!
thanks in advance
# 2  
Old 12-22-2010
What is the declaration and/or definition of foo2?
# 3  
Old 12-22-2010
I declare foo2 before main as this: void * foo2(void *arg);
foo2 is a function which a thread from thread pool will execute.
I correct some things and the new errors are:

c:63: error: expected declaration specifiers or ‘...' before ‘(' token
c:104: warning: passing argument 2 of ‘foo' from incompatible pointer type
c:63: note: expected ‘void (*)(void *)' but argument is of type ‘void * (*)(void *)'
c:104: error: too many arguments to function ‘foo'
c: At top level:
c:110: error: expected declaration specifiers or ‘...' before ‘(' token
# 4  
Old 12-22-2010
what is threadpool here? A struct?
function foo is expecting an address as it's 1st argument.
but in line 104, you are passing a value.
# 5  
Old 12-22-2010
yes, threadpool is a struct.Ok this is right,the first value should be an adress,so I changed it.But this is not the problem I have.
Now, try to declare a function prototype:
typedef void (*TypeOfFunc)(void *);
and to use this prototype when it is to declare a function like this.
But still,the problems remain..Smilie
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Linux

A little difficult: investigate Xenix and slattach problem

I know Xenix is a little outdated, and is dangerous to use on network. But this is a virtual machine, and I like to play retrocomputing sometime. The question is..why ftp over slip doesn't work? I've set this Xenix vm on libvirt <domain type='kvm' id='5'... (2 Replies)
Discussion started by: Linusolaradm1
2 Replies

2. Shell Programming and Scripting

Function prototype declaration

Hi All, I have the script as below #!bin/bash let k=9 if then echo "Start" Hello echo "End" else echo "failed" fi function Hello() { echo "hello !!!!" } I got the below error : (4 Replies)
Discussion started by: Balasankar
4 Replies

3. Programming

Difficult in analyzing an algorithm

Hello, I was reading Heuritics text and came across an algorithm below. Finding hard to analyze it can any one help me out below... How to analyze if I take say no. of types are 5 and each type has say 20 coins. thanks. Let {c1, c2...cn=1} be a set of distinct coin types where ci is... (1 Reply)
Discussion started by: sureshcisco
1 Replies

4. Shell Programming and Scripting

Difficult problem: Complex text file manipulation in bash script.

I don't know if this is a big issue or not, but I'm having difficulties. I apoligize for the upcoming essay :o. I'm writing a script, similar to a paint program that edits images, but in the form of ANSI block characters. The program so far is working. I managed to save the image into a file,... (14 Replies)
Discussion started by: tinman47
14 Replies

5. UNIX for Dummies Questions & Answers

Array declaration problem

Hi all, I would like to declare a vector of variables and access them sequentially. Here is my code ARRAY_CT="0001000000 0000100000 0000010000" ELEMENTS_CT=${#ARRAY_CT} echo $ELEMENTS_CT for (( j=1;j<=$ELEMENTS_IS;j++)); do echo ${ARRAY_IS} done ... (2 Replies)
Discussion started by: f_o_555
2 Replies

6. Programming

implicit declaration of function 'reboot'

Hi, I'm tying to use the following function to reboot the system as part of my code #include <unistd.h> #include <linux/reboot.h> int restart(unsigned int delay) { sleep(delay); return reboot(LINUX_REBOOT_CMD_RESTART); } When I try to compile the code I get the warning in the... (2 Replies)
Discussion started by: galapogos
2 Replies

7. Shell Programming and Scripting

A difficult script (for me)

Hi, I'm a beginners, this is one of my first script, it's easy, but I don't know how to write this script: The script receive in input 4 parameters: 1) user_name 2) r and/or w and/or x ( rwx, rw, x, ....) 3) u and/or g and/or o ( u, uo, ugo, ...) 4) the path name The script print a... (2 Replies)
Discussion started by: DNAx86
2 Replies

8. UNIX for Advanced & Expert Users

difficult sed command

Im trying to replace every line line1 line2 line3 with: line1 extraline1 line2 extraline2 line3 extraline3 with about 10 extra lines I am able to add axtra lines with: (17 Replies)
Discussion started by: Dave724001
17 Replies

9. Programming

gcc warnings: implicit declaration of function...

I am having strange warnings from gcc compiler, which I don't think should come while cmpiling. Can anyone help? The warnings are: - warning: implicit declaration of function 'bzero' - warning: implicit declaration of function 'inet_addr' The code is as below: int main(int argc, char... (2 Replies)
Discussion started by: Ahsan
2 Replies

10. UNIX for Advanced & Expert Users

Difficult Filtering Problem

Sir, I have a file containing say 1000 lines that contain 100 paragraphs of 10 lines each separated by blank lines.I have to match a pattern or a string "hdfhasdjkasdhs" and print the complete paragraphs containing these strings.I can do this with the help of line editor ex,but how can I use... (1 Reply)
Discussion started by: Piyush
1 Replies
Login or Register to Ask a Question