blueloveTH 2 лет назад
Родитель
Сommit
68036f8731
2 измененных файлов с 19 добавлено и 3 удалено
  1. 7 3
      docs/C-API/call.md
  2. 12 0
      docs/C-API/stack.md

+ 7 - 3
docs/C-API/call.md

@@ -6,10 +6,14 @@ order: 6
 
 ### `bool pkpy_vectorcall(pkpy_vm*, int argc)`
 
-Wraps `vm->vectorcall(argc)`.
-
-This is the only way to call a function in the C-APIs.
+Wraps `vm->vectorcall(argc)`. This function is used to call a function with a fixed number of arguments. The arguments are popped from the stack. The return value is pushed onto the stack.
 
 1. First push the function to call.
 2. Push `self` argument if it is a method call. Otherwise, call `pkpy_push_null`.
 3. Push arguments from left to right.
+
+!!!
+Unlike lua, a python function always returns a value.
+If the function returns `void`, it will push `None` onto the stack.
+You can call `pkpy_pop_top` to discard the return value.
+!!!

+ 12 - 0
docs/C-API/stack.md

@@ -103,14 +103,26 @@ PK_EXPORT bool pkpy_is_none(pkpy_vm*, int i);
 
     Push a global variable onto the stack.
 
+    ```
+    [] -> [value]
+    ```
+
 + `bool pkpy_setglobal(pkpy_vm*, pkpy_CName name)`
 
     Set a global variable to the value at the top of the stack.
 
+    ```
+    [value] -> []
+    ```
+
 + `bool pkpy_eval(pkpy_vm*, const char* source)`
 
     Evaluate a string and push the result onto the stack.
 
+    ```
+    [] -> [result]
+    ```
+
 + `bool pkpy_unpack_sequence(pkpy_vm*, int size)`
 
     Unpack a sequence at the top of the stack. `size` is the element count of the sequence.