Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -std=c99 -Wall -Wextra -Wpedantic -Wshadow
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdint.h>
- uint32_t ClampUintVal( uint32_t v, uint32_t min_v, uint32_t max_v )
- {
- uint32_t tmp = v < min_v ? min_v : v;
- return tmp > max_v ? max_v : tmp;
- }
- int32_t ClampIntVal( int32_t v, int32_t min_v, int32_t max_v )
- {
- int32_t tmp = v < min_v ? min_v : v;
- return tmp > max_v ? max_v : tmp;
- }
- double ClampDoubleVal( double v, double min_v, double max_v )
- {
- double tmp = v < min_v ? min_v : v;
- return tmp > max_v ? max_v : tmp;
- }
- int main()
- {
- printf( "(1) %d\n", ClampUintVal( 5, 2, 10 ) );
- printf( "(2) %d\n", ClampUintVal( 1, 2, 10 ) );
- printf( "(3) %d\n\n", ClampUintVal( 16, 2, 10 ) );
- printf( "(4) %d\n", ClampIntVal( 5, 2, 10 ) );
- printf( "(5) %d\n", ClampIntVal( -1, 2, 10 ) );
- printf( "(6) %d\n\n", ClampIntVal( 16, 2, 10 ) );
- printf( "(7) %f\n", ClampDoubleVal( 5.0, 2.0, 10.0 ) );
- printf( "(8) %f\n", ClampDoubleVal( -1.0, 2.0, 10.0 ) );
- printf( "(9) %f\n\n", ClampDoubleVal( 16.0, 2.0, 10.0 ) );
- return 0;
- }
- /*
- output:
- (1) 5
- (2) 2
- (3) 10
- (4) 5
- (5) 2
- (6) 10
- (7) 5.000000
- (8) 2.000000
- (9) 10.000000
- */
Advertisement
Add Comment
Please, Sign In to add comment