C :: Array Of Functions Declaration / Definition And Call
Aug 3, 2013
i am using c language to program PIC micro controllers, i am making a multi compilation unit project in order to organize my code better.
I want to create an array of functions and be able to call it from anyplace in the code
what i have done so far gplib.c
Code:
typedef void (*out)(int8);
void OUT_A(int8 weight){output_A(weight);}
void OUT_B(int8 weight){output_B(weight);}
void OUT_C(int8 weight){output_C(weight);}
void OUT_D(int8 weight){output_D(weight);}
void OUT_E(int8 weight){output_E(weight);}
out output_port[5+1] = {OUT_A, OUT_B, OUT_C, OUT_D, OUT_E};
how to declare them in gplib.h and how to call them anywhere in the code.
View 7 Replies
ADVERTISEMENT
May 11, 2013
I read that Memory is allocated during definition of a variable and not during declaration. Declaration is something like,
Code: int x;
And definition is assigning some value to it. This is what my professor taught. My doubt is if memory is not allocated during declaration, then how the compiler successfully compiles and runs the following, which i had already tried.
Code:
#include<stdio.h>
#include<conio.h>
int main() {
int c;
int *p=&c;
printf("%x",p);
getch();
return 0;
}
The variable c is only declared. But the program outputs a memory address. Shouldn't it show an error?
View 2 Replies
View Related
Dec 17, 2013
is possible to combine structures declaration and definition in programming language?
View 3 Replies
View Related
Jan 11, 2014
Why I take warning on this code :
Code:
#include<stdio.h>
extern int v = 0; // Declaration and definition of an external
int main(void)
[code]...
Is there any error? Why I take a warning: 'v' initialized and declared 'extern'|||=== Build finished: 0 errors, 1 warnings ===| ???
and what is the meaning of :An extern declaration that initializes a variable serves as a definition of the variable. This rule prevents multiple extern declarations from initializing a variable in different ways.
View 3 Replies
View Related
May 12, 2013
I am just learning using class template but I keep getting error unable to match function definition to an existing declaration
template <typename T>
class Homework {
private:
string name;
public:
template <typename T>
void SetName(T val);
[Code] ....
View 10 Replies
View Related
Apr 13, 2013
I've written the following code and keep getting the errors:
Error1error C2244: 'Supermarket<temp>::operator =' : unable to match function definition to an existing declaration
Error2error C2244: 'Supermarket<temp>::setName' : unable to match function definition to an existing declaration
Error3error C2244: 'Supermarket<temp>::setArea' : unable to match function definition to an existing declaration
#ifndef SUPERMARKET_H
#define SUPERMARKET_H
#include<string>
#include<iostream>
using namespace std;
[Code] .....
I moved the files to the .h file, and now I'm getting
Error2error LNK1120: 1 unresolved externals
View 11 Replies
View Related
Jan 3, 2014
#include "stdafx.h"
#include <iostream>
#include <math.h>
using namespace std;
class Calc {
[Code] ....
when i built it, it showed the following errors:
1>------ Build started: Project: rough, Configuration: Debug Win32 ------
1> rough.cpp
1>e:c programs
ough
ough
ough.cpp(17): error C3872: '0xa0': this character is not allowed in an identifier
1>e:c programs
[Code] ....
Need sorting out the errors!!!
View 3 Replies
View Related
Dec 24, 2014
We had few functions which were written in Java, and we are now moving to C# .Net.
Instead of re-writing the code in .net, I want to know if there is any possibility to use those functions in .Net as is. (calling java functions).
View 1 Replies
View Related
May 26, 2013
Here is a working C++ program and its output that reads the names of a certain number of functions whose names are written in a disk file that provides the control parameters in a near-real time fashion. Based on this information, the program calls those functions whose names were given in this text file as parameters. The method I have used is to build a map of functions that connects the names of the functions to the actual functions. Once this map is created, then it is very easy to iterate in such a way that only those selected functions are called.
So far this is working well, and it makes the logic of the code easier because ultimately there will be a large inventory of functions (probably hundreds of functions), and this way of pre-building a map of functions avoids writing hundreds of if statements in the code. Of course, pre-building this reusable map in the background is still equivalent to writing that many if statements, but at least it makes the code very compact and much more automatic, since it is done only once.
But I now have a related question: In this case (when the selected subset of functions to call is given as incoming data as in this example), does C++ make it possible to avoid using maps of functions, by directly applying the string variable that holds the name of the function in order to call the original function immediately For instance, if a string variable s = "MyFunction", then is there a more direct way of using this string as if it were the actual function whose name is spelled exactly in that way? This would make the code even more compact.
Here is the sample test code for the map of functions, and its output:
First of all here is the text file "FileForNamesOfFunctions.TXT" that contains the part of the "data", which is the set of functions select from from the inventory and only call these:
Code:
function2
function3
function5 And here is the C++ code that uses this "data":
Code:
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
[Code] ....
View 8 Replies
View Related
Sep 27, 2014
This week we are learning to use templates, and I don't understand how to call my member functions with my template based class. I tried the standard convention of calling member functions, but I keep getting an error saying name following"::" must be a class or namespace name. I'm thinking my problem lies with my typename T, but I am unsure. Line 16 is where I am getting tripped up.
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
template<class T>
T Set
{
public:
[Code]...
View 2 Replies
View Related
Sep 14, 2014
I want this programming to call functions choose between a customer type and call the relevent function to calculate the final price but it is not calling the functions.
#include <iostream>
using namespace std;
double amount;
double studendOrPensioner(int&choice, double &origPrice);
double OtherCustomers(int&choice,double& origPrice);
[Code]...
View 1 Replies
View Related
Jan 7, 2013
I would like to know the difference between the following two forms of array declaration:
(1)double myArray[3] = {1.0, 2.0, 3.0};
(2)array<double,3> myArray = {1.0, 2.0, 3.0};
If I say the second one allows to use different functions like .begin(), am I right? Is there any other difference between these two declaration?
View 6 Replies
View Related
May 3, 2013
At the moment im trying out with pointing to an array of functions. I got this working as following:
typedef void (* functionPtr) ();
functionPtr functions[2][2]={{do11,do12}, {do21,do22}};
void do11(){DEBUG_PRINTLN("11");}
void do12(){DEBUG_PRINTLN("12");}
void do21(){DEBUG_PRINTLN("21");}
void do22(){DEBUG_PRINTLN("22");}
void loop(){
A=0;
B=1;
functions[A][b]();
}
But now I'm trying to use this to point to a function inside a class so instead of do11, i want to be able to point to Basic.Do11. Somehow this doesnt work and I keep on getting this message:
error: argument of type 'void (Basic::)()' does not match 'void (*)()'
View 2 Replies
View Related
Jan 24, 2014
I want to understand the ways in which arrays can be declared and used. What each of the following do or what's the difference between them and what would be the length of each:-
1 - char ary1[50];
2 - char ary2[50] = {'H','e','l','l','o'};
3 - char ary3[50] = {'H','e','l','l','o','