Reputation: 884
I have function in C that reads byte by byte from a given buffer and returns the result of a mathematical formula.
I need to write the same function in Python
The buffer in C is struct and in python i used ctypes Structure class
my prototype in c is int calc_formula(char *buff,int len)
so calling the function in c is staright forward but how i define such function in Python?
I try to define the following and have some questions
def calc_formula(buff,len):
some code
UPDATE
i tried bbrame solution :
def calc_formula(buff, len):
sum = 0
for curChar in buff:
numericByteValue = ord(curChar)
sum += numericByteValue
return sum
with When i try its code with calc_formula(input_buff,len) , i get the following:
"*error:TypeError: 't_input_buff' object is not iterable*" - input_buff is instance of t_input_buff that is Class(Structure) . what can be the problem?
(it give me the error when it try to do the for command)
Upvotes: 0
Views: 461
Reputation: 884
UPDATE
i solve it with ctypes union class
for answer look in this question
Upvotes: 0
Reputation: 18544
In c, try using the type c_char_p rather than char* (see the ctypes documentation).
In python the parameter (buff) will be a python string. Loop through it as follows:
def calc_formula(buff, len):
sum = 0
for curChar in buff:
numericByteValue = ord(curChar)
sum += numericByteValue
return sum
Upvotes: 1