Draw a centered circle
Doesn't SDL have a function for drawing a circle, or are you just doing that as practise?

#define PI  3.14159


math.h should have M_PI.

struct Circle {
    int radius;
    int h; // The X access of the center of the circle.
    int k; // The Y access of the center of the circle.


Just call them x and y, or center_x and center_y.

int new_x; int new_y; int old_x; int old_y; float step; 


These should be in the function that draws the circle, as they're part of the logic of drawing, not the circle as an object.

int main (int argc, char *argv[])
    Circle circle;
    circle.radius = 200;
    circle.h = SCR_CEN_X;


Make a function to initialize the Circle struct, esp. as you have fields that are initialized to as uninteresting a value as zero.

        if ( event.type == SDL_QUIT ) {
            is_running = false;


I would break out of the loop here, since you're going to exit soon anyway.

    for ( float theta = 0; theta &lt; (PI * 2); theta += circle.step ) {
        circle.new_x = circle.h + (circle.radius * cos ( theta ));
        circle.new_y = circle.k - (circle.radius * sin ( theta )); 
        SDL_RenderDrawLine ( renderer, circle.old_x, circle.old_y,
                             circle.new_x, circle.new_y );


Put the circle drawing in a function, and make new_x, new_y etc. locals to it. As for step, you might want to scale it based on the circle's radius. Or make it a parameter to the function.

I think you have a sort of an off-by-one error here, as (1) on the first iteration of the loop, you draw starting from (old_x, old_y), but old_x and old_y aren't set yet. And (2) when the loop ends, you probably want to draw a line from the last point (at angle 49/50*2*pi) to the very first point (at angle 0) to complete the circle.

Also, decide if you're writing C or C++. You can't define a struct Circle as just Circle foo in C, and in C++, you should make the class have a proper constructor.